mangos-v1

The pure golang implementation of nanomsg (version 1, frozen)

Github星跟蹤圖

mangos

Linux Status
Apache License
Discord
GoDoc
Go Report Card

NOTE: This is the legacy version of mangos (v1).
Users are encouraged to use mangos v2
instead if possible.
No further development is taking place on v1.

Package mangos is an implementation in pure Go of the SP
("Scalability Protocols")
messaging system.
This makes heavy use of go channels, internally, but it can operate
on systems that lack support for cgo.

The reference implementation of the SP protocols is available as
nanomsg™; there is also an effort to implement
an improved and more capable version of nanomsg called
NNG™.

The design is intended to make it easy to add new transports with almost trivial
effort, as well as new topologies ("protocols" in SP terminology.)

At present, all of the Req/Rep, Pub/Sub, Pair, Bus, Push/Pull, and
Surveyor/Respondent patterns are supported.

Additionally, there is an experimental new pattern called STAR available. This
pattern is like Bus, except that the messages are delivered not just to
immediate peers, but to all members of the topology. Developers must be careful
not to create cycles in their network when using this pattern, otherwise
infinite loops can occur.

Supported transports include TCP, inproc, IPC, WebSocket, WebSocket over TLS and
TLS over TCP.
Use addresses of the form "tls+tcp://:" to access TLS.
Note that ipc:// is not supported on Windows (by either this or the reference
implementation.) Forcing the local TCP port in Dial is not supported yet (this
is rarely useful).

Basic interoperability with nanomsg and NNG has been verified (you can do
so yourself with nanocat and macat) for all protocols and transports
that NNG and nanomsg support.
Additionally there are a number of projects that use the two products together.

There is a third party experimental QUIC transport available at
quic-mangos. (An RFE to make this
transport official exists.)

If you find this useful, I would appreciate knowing about it. I can be reached
via my email address, garrett -at- damore -dot- org

Installing

Using go get

$ go get -u nanomsg.org/go-mangos

After this command mangos is ready to use. Its source will be in:

$GOPATH/src/pkg/nanomsg.org/go-mangos

You can use go get -u -a to update all installed packages.

Documentation

For docs, see http://godoc.org/nanomsg.org/go-mangos or run:

$ godoc nanomsg.org/go-mangos

Testing

This package supports internal self tests, which can be run in
the idiomatic Go way. (Note that most of the tests are in a test
subdirectory.)

$ go test nanomsg.org/go-mangos/...

There are also internal benchmarks available:

$ go test -bench=. nanomsg.org/go-mangos/test

Commercial Support

Staysail Systems, Inc. offers
commercial support for mangos.

Examples

Some examples are posted in the directories under examples/
in this project.

These examples are rewrites (in Go) of Tim Dysinger's
Getting Started with Nanomsg.

godoc in the example directories will yield information about how to run
each example program.

Enjoy!

Copyright 2018 The Mangos Authors

mangos™, Nanomsg™ and NNG™ are trademarks of Garrett D'Amore.

主要指標

概覽
名稱與所有者nanomsg/mangos-v1
主編程語言Go
編程語言Go (語言數: 4)
平台
許可證Apache License 2.0
所有者活动
創建於2014-10-25 14:52:25
推送於2019-11-03 18:17:21
最后一次提交2019-11-03 10:17:20
發布數7
最新版本名稱v3.0.0-alpha (發布於 )
第一版名稱v1.0.0 (發布於 )
用户参与
星數1.5k
關注者數72
派生數119
提交數266
已啟用問題?
問題數238
打開的問題數0
拉請求數66
打開的拉請求數1
關閉的拉請求數31
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?