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.