Skip to content
/ netmq Public
forked from zeromq/netmq

A 100% native C# implementation of ZeroMQ for .NET

License

Notifications You must be signed in to change notification settings

Muraad/netmq

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NetMQ Team City Build NetMQ NuGet version NetMQ download stats

NetMQ is a 100% native C# port of the lightweight messaging library ZeroMQ.

NetMQ extends the standard socket interfaces with features traditionally provided by specialised messaging middleware products. NetMQ sockets provide an abstraction of asynchronous message queues, multiple messaging patterns, message filtering (subscriptions), seamless access to multiple transport protocols, and more.

Installation

You can download NetMQ via NuGet.

Using / Documentation

Before using NetMQ, make sure to read the ZeroMQ Guide.

The NetMQ documentation can be found at netmq.readthedocs.org. Thanks to Sacha Barber who agreed to do the documentation.

There are also a few blog posts available, which you can read about here:

Here is a simple example:

using (var context = NetMQContext.Create())
using (var server = context.CreateResponseSocket())
using (var client = context.CreateRequestSocket())
{
    // Bind the server to a local TCP address
    server.Bind("tcp://localhost:5556");

    // Connect the client to the server
    client.Connect("tcp://localhost:5556");

    // Send a message from the client socket
    client.Send("Hello");

    // Receive the message from the server socket
    string m1 = server.ReceiveString();
    Console.WriteLine("From Client: {0}", m1);

    // Send a response back from the server
    server.Send("Hi Back");

    // Receive the response from the client socket
    string m2 = client.ReceiveString();
    Console.WriteLine("From Server: {0}", m2);
}

Contributing

We need help, so if you have good knowledge of C# and ZeroMQ just grab one of the issues and add a pull request. We are using C4.1 process, so make sure you read this before.

Regarding coding standards, we are using C# coding styles, to be a little more specific: we are using camelCase for variables and fields (with m_ prefix for instance members and s_ for static fields) and PascalCase for methods, classes and constants. Make sure you are using 'Insert Spaces' and 4 for tab and indent size.

You can also help us by:

  • Joining our mailing list and be an active member
  • Writing tutorials in the github wiki
  • Writing about the project in your blog (and add a pull request with a link to your blog at the bottom of this page)

Important note on backward compatibility

Since version 3.3.07 NetMQ changed the number serialization from Little Endian to Big Endian to be compatible with ZeroMQ. Any NetMQ version prior to 3.3.0.7 is not compatible with the new version. To support older versions you can set Endian option on a NetMQ socket to Little Endian, however doing so will make it incompatible with ZeroMQ.

We recommend to update to the latest version and use Big Endian which is now the default behavior.

Mailing list

You can join our mailing list here.

Who owns NetMQ?

NetMQ is owned by all its authors and contributors. This is an open source project licensed under the LGPLv3. To contribute to NetMQ please read the C4.1 process, it's what we use. There are open issues in the issues tab that still need to be taken care of, feel free to pick one up and submit a patch to the project.

Build Server

TeamCity at CodeBetter

Code Better

YouTrack by JetBrains - keyboard-centric bug tracker

TeamCity by JetBrains - continuous integration server

About

A 100% native C# implementation of ZeroMQ for .NET

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 99.9%
  • Shell 0.1%