go.nanomsg.org/mangos/v3@v3.4.3-0.20240217232803-46464076f1f5/README.md (about) 1 # mangos™ v3 2 3 [![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraine.svg)](https://stand-with-ukraine.pp.ua) 4 [![Linux](https://img.shields.io/github/actions/workflow/status/nanomsg/mangos/linux.yml?branch=master&logoColor=grey&logo=linux&label=)](https://github.com/nanomsg/mangos/actions) 5 [![Windows](https://img.shields.io/github/actions/workflow/status/nanomsg/mangos/windows.yml?branch=master&logoColor=grey&logo=windows&label=)](https://github.com/nanomsg/mangos/actions) 6 [![macOS](https://img.shields.io/github/actions/workflow/status/nanomsg/mangos/darwin.yml?branch=master&logoColor=grey&logo=apple&label=)](https://github.com/nanomsg/mangos/actions) 7 [![Coverage](https://img.shields.io/codecov/c/github/nanomsg/mangos?logoColor=grey&logo=codecov&label=)](https://codecov.io/gh/nanomsg/mangos) 8 [![Discord](https://img.shields.io/discord/639573728212156478?label=&logo=discord)](https://discord.gg/wewTkby) 9 [![Documentation](https://img.shields.io/badge/godoc-docs-blue.svg?label=&logo=go)](https://pkg.go.dev/go.nanomsg.org/mangos/v3) 10 [![License](https://img.shields.io/github/license/nanomsg/mangos.svg?logoColor=silver&logo=opensourceinitiative&label=&color=blue)](https://github.com/nanomsg/mangos/blob/master/LICENSE) 11 [![Version](https://img.shields.io/github/v/tag/nanomsg/mangos?logo=github&sort=semver&label=)](https://github.com/nanomsg/mangos/releases) 12 13 Please see [here](UKRAINE.md) for an important message for the people of Russia. 14 15 _Mangos™_ is an implementation in pure Go of the _SP_ 16 (`Scalability Protocols`) messaging system. 17 These are colloquially known as `nanomsg`. 18 19 > _NOTE_: The import path has changed! Please change any references 20 > to `go.nanomsg.org/mangos/v3`. 21 > The old v2 imports will still work for old applications, provided that 22 > a sufficiently modern version of Go is used. However, no further work 23 > will be done on earlier versions. 24 > Earlier versions will still inter-operate with this version, except that 25 > within the same process the `inproc` transport can only be used by 26 > consumers using the same version of mangos. 27 28 The modern C implementation of the SP protocols is available as 29 [NNG™](https://github.com/nanomsg/nng). 30 31 The original implementation of the SP protocols is available as 32 [nanomsg™](http://www.nanomsg.org). 33 34 Generally (modulo a few caveats) all of these implementations can inter-operate. 35 36 The design is intended to make it easy to add new transports, 37 as well as new topologies (`protocols` in SP parlance.) 38 39 At present, all the Req/Rep, Pub/Sub, Pair, Bus, Push/Pull, and 40 Surveyor/Respondent patterns are supported. 41 This project also supports an experimental protocol called Star. 42 43 Supported transports include TCP, inproc, IPC, WebSocket, WebSocket/TLS and TLS. 44 45 Basic interoperability with nanomsg and NNG has been verified (you can do 46 so yourself with `nanocat` and `macat`) for all protocols and transports 47 that _NNG_ and _nanomsg_ support, except for the _ZeroTier_ transport and the PAIRv1 48 protocol, which are only supported in _NNG_ at this time. 49 50 There are a number of projects that use these products together. 51 52 ## Documentation 53 54 For API documentation, see https://pkg.go.dev/go.nanomsg.org/mangos/v3. 55 56 ## Testing 57 58 This package supports internal self tests, which can be run in 59 the idiomatic Go way. 60 (Note that most of the tests are in a test subdirectory.) 61 62 $ go test go.nanomsg.org/mangos/v3/... 63 64 There are also internal benchmarks available: 65 66 $ go test -bench=. go.nanomsg.org/mangos/v3/test 67 68 ## Commercial Support 69 70 [Staysail Systems, Inc.](mailto:info@staysail.tech) offers 71 [commercial support](http://staysail.tech/support/mangos) for mangos. 72 73 ## Examples 74 75 Some examples are posted in the directories under `examples/` in this project. 76 77 These examples are rewrites (in Go) of Tim Dysinger's 78 [Getting Started with Nanomsg](http://nanomsg.org/gettingstarted/index.html). 79 80 Running `go doc` in the example directories will yield information about how 81 to run each example program. 82 83 Enjoy! 84 85 --- 86 87 Copyright 2021 The Mangos Authors 88 89 mangos™, Nanomsg™ and NNG™ are [trademarks](http://nanomsg.org/trademarks.html) of Garrett D'Amore.