github.com/gdamore/mangos@v1.4.0/README.md (about)

     1  ## mangos <img src=mangos.jpg align=right>
     2  
     3  
     4  [![Linux Status](https://img.shields.io/travis/go-mangos/mangos.svg?label=linux)](https://travis-ci.org/go-mangos/mangos)
     5  [![Windows Status](https://img.shields.io/appveyor/ci/gdamore/mangos.svg?label=windows)](https://ci.appveyor.com/project/gdamore/mangos)
     6  [![Apache License](https://img.shields.io/badge/license-APACHE2-blue.svg)](https://github.com/nanomsg/mangos/blob/master/LICENSE)
     7  [![Gitter](https://img.shields.io/badge/gitter-join-brightgreen.svg)](https://gitter.im/go-mangos/mangos)
     8  [![GoDoc](https://img.shields.io/badge/godoc-reference-blue.svg)](https://godoc.org/nanomsg.org/go-mangos)
     9  [![Go Report Card](https://goreportcard.com/badge/nanomsg.org/go-mangos)](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&trade;](http://www.nanomsg.org); there is also an effort to implement
    25  an improved and more capable version of nanomsg called
    26  [NNG&trade;](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&trade;, Nanomsg&trade; and NNG&trade; are [trademarks](http://nanomsg.org/trademarks.html) of Garrett D'Amore.