forked from zeromq/goczmq
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request zeromq#1 from taotetek/master
Problem: there is no information about this project
- Loading branch information
Showing
3 changed files
with
45 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
Contributors | ||
============ | ||
|
||
Brian Knox | ||
Luna Duclos |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
# Contributing to GoCZMQ | ||
|
||
The contributors are listed in AUTHORS (add yourself). This project uses the MPL v2 license, see LICENSE. | ||
|
||
# Our Process | ||
Before you send a pull request, please familiarize yourself with the [C4.1 Collective Code Construction Contract](http://rfc.zeromq.org/spec:22) process. A quick summary (but please, do read the process document): | ||
* A Pull Request should be described in the form of a problem statement. | ||
* The code included with the pull request should be a proposed solution to that problem. | ||
* The submitted code should adhere to our style guidelines (described below). | ||
* The submitted code should include tests. | ||
* The submitted code should not break any existing tests. | ||
|
||
"A Problem" should be one single clear problem. Large complex problems should be broken down into a series of smaller problems when ever possible. | ||
|
||
**Please be aware** that GoCZMQ is **not versioned**. We merge to master. We deploy from master. Master is epxected to be working, at all times. We strive to do our very best to never break public API in this library. Changes can be additive, but they can not break the existing API. If a case arises where we need to, we will be loud about it on the ZeroMQ mailing list and try to build consensus among current maintainers that it's necessary. We will be very chagrined about it, and you can poke fun at us a bit. | ||
|
||
# Style Guide | ||
* Your code must be formatted with [Gofmt](https://blog.golang.org/go-fmt-your-code) | ||
* Your code should pass [golint](https://github.com/golang/lint). If for some reason it cannot, please provide an explanation. | ||
* Your code should pass [go vet](https://golang.org/cmd/vet/) | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,20 @@ | ||
# gogozmq | ||
Pure Go Implementation of a Subset of ZeroMQ | ||
|
||
## Problems | ||
* Go's performance is less than optimal when calling C Code | ||
* Managing C dependencies when working with Go is cumbersome | ||
* CZMQ has a large API surface and we are only interested in a subset of it | ||
|
||
## Proposed Solution | ||
GoGoZMQ will be a pure go implementation of a subset of ZMTP, wrapped with a Go friendly API. After a year of working on and with [GoCZMQ](https://github.com/zeromq/goczmq), we have come to some conclusions on our use of ZeroMQ from Go: | ||
* The [GoCZMQ Channeler API](https://godoc.org/github.com/zeromq/goczmq#Channeler) covers the majority of the ways we wish to use ZeroMQ from Go. | ||
* The TCP transport covers most of our use case for ZeroMQ in Go. | ||
* The ZMQ_PUB, ZMQ_SUB, ZMQ_CLIENT, and ZMQ_SERVER socket types cover most of our use cases. | ||
* We do not care about ZeroMQ versions before version 4. | ||
|
||
We feel if we get a working implementation of the Channeler API from GoCZMQ, that works with PUB/SUB and CLIENT/SERVER sockets over TCP, this covers a large set of cases we currently use GoCZMQ for. | ||
|
||
For the initial implementation, we are going to punt on worrying about CURVE encryption and ZAP support. If we get as far as having a pure Go implementation of Channeler that successfully interacts with other ZeroMQ implementations, we will then worry about the problem of authentication and encryption. | ||
|
||
Contribution solutions for problems outside of the scope of our initial problem set are welcome. See the [contributors guide](https://github.com/zeromq/goczmq/CONTRIBUTORS.md) for our process. |