github.com/gdamore/mangos@v1.4.0/README.md (about) 1 ## mangos <img src=mangos.jpg align=right> 2 3 4 [](https://travis-ci.org/go-mangos/mangos) 5 [](https://ci.appveyor.com/project/gdamore/mangos) 6 [](https://github.com/nanomsg/mangos/blob/master/LICENSE) 7 [](https://gitter.im/go-mangos/mangos) 8 [](https://godoc.org/nanomsg.org/go-mangos) 9 [](https://goreportcard.com/report/nanomsg.org/go-mangos) 10 11 Package mangos is an implementation in pure Go of the SP 12 ("Scalability Protocols") 13 messaging system. 14 This makes heavy use of go channels, internally, but it can operate 15 on systems that lack support for cgo. 16 17 NOTE: The repository has moved from github.com/go-mangos/mangos. 18 Please import using nanomsg.org/go-mangos. Also, be advised that 19 the master branch of this repository may contain breaking changes. 20 Therefore, consider using a tag, such as v1, to ensure that you have 21 the latest stable version. 22 23 The reference implementation of the SP protocols is available as 24 [nanomsg™](http://www.nanomsg.org); there is also an effort to implement 25 an improved and more capable version of nanomsg called 26 [NNG™](https://github.com/nanomsg/nng). 27 28 The design is intended to make it easy to add new transports with almost trivial 29 effort, as well as new topologies ("protocols" in SP terminology.) 30 31 At present, all of the Req/Rep, Pub/Sub, Pair, Bus, Push/Pull, and 32 Surveyor/Respondent patterns are supported. 33 34 Additionally, there is an experimental new pattern called STAR available. This 35 pattern is like Bus, except that the messages are delivered not just to 36 immediate peers, but to all members of the topology. Developers must be careful 37 not to create cycles in their network when using this pattern, otherwise 38 infinite loops can occur. 39 40 Supported transports include TCP, inproc, IPC, Websocket, Websocket/TLS and TLS. 41 Use addresses of the form "tls+tcp://<host>:<port>" to access TLS. 42 Note that ipc:// is not supported on Windows (by either this or the reference 43 implementation.) Forcing the local TCP port in Dial is not supported yet (this 44 is rarely useful). 45 46 Basic interoperability with nanomsg and NNG has been verified (you can do 47 so yourself with nanocat and macat) for all protocols and transports 48 that NNG and nanomsg support. 49 Additionally there are a number of projects that use the two products together. 50 51 There is a third party experimental QUIC transport available at 52 [quic-mangos](https://github.com/lthibault/quic-mangos). (An RFE to make this 53 transport official exists.) 54 55 If you find this useful, I would appreciate knowing about it. I can be reached 56 via my email address, garrett -at- damore -dot- org 57 58 ## Installing 59 60 ### Using *go get* 61 62 $ go get -u github.com/nanomsg/go-mangos 63 64 After this command *mangos* is ready to use. Its source will be in: 65 66 $GOPATH/src/pkg/github.com/nanomsg.org/go-mangos 67 68 You can use `go get -u -a` to update all installed packages. 69 70 ## Documentation 71 72 For docs, see http://godoc.org/nanomsg.org/go-mangos or run: 73 74 $ godoc nanomsg.org/go-mangos 75 76 ## Testing 77 78 This package supports internal self tests, which can be run in 79 the idiomatic Go way. (Note that most of the tests are in a test 80 subdirectory.) 81 82 $ go test nanomsg.org/go-mangos/... 83 84 There are also internal benchmarks available: 85 86 $ go test -bench=. nanomsg.org/go-mangos/test 87 88 ## Commercial Support 89 90 [Staysail Systems, Inc.](mailto:info@staysail.tech) offers 91 [commercial support](http://staysail.tech/support/mangos) for mangos. 92 93 ## Examples 94 95 Some examples are posted in the directories under examples/ 96 in this project. 97 98 These examples are rewrites (in Go) of Tim Dysinger's 99 [Getting Started with Nanomsg](http://nanomsg.org/gettingstarted/index.html). 100 101 godoc in the example directories will yield information about how to run 102 each example program. 103 104 Enjoy! 105 106 Copyright 2018 The Mangos Authors 107 108 mangos™, Nanomsg™ and NNG™ are [trademarks](http://nanomsg.org/trademarks.html) of Garrett D'Amore.