Skip to content

Commit

Permalink
Merge pull request zeromq#1 from taotetek/master
Browse files Browse the repository at this point in the history
Problem: there is no information about this project
  • Loading branch information
xaqq committed Oct 9, 2015
2 parents ca75036 + 983d840 commit 84eb3d6
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 0 deletions.
5 changes: 5 additions & 0 deletions AUTHORS
@@ -0,0 +1,5 @@
Contributors
============

Brian Knox
Luna Duclos
22 changes: 22 additions & 0 deletions CONTRIBUTING.md
@@ -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/)


18 changes: 18 additions & 0 deletions README.md
@@ -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.

0 comments on commit 84eb3d6

Please sign in to comment.