<commit_before>network-transport-zeromq
========================

[![Build Status][Build Status Image]][Build Status]

`network-transport-zmq` provides
a [network-transport][network-transport] implementation based on the
ØMQ brokerless message passing system.

Currently all tests from
[network-transport-tests][network-transport-tests] are passing. All
tests from [distributed-process-tests][distributed-process-tests] are
also passing, except monitoring and connection failure tests.

[Build Status Image]: https://secure.travis-ci.org/tweag/network-transport-zeromq.png?branch=master
[Build Status]: http://travis-ci.org/tweag/network-transport-zeromq
[network-transport]: http://hackage.haskell.org/package/network-transport
[network-transport-tests]: http://hackage.haskell.org/package/network-transport-tests
[distributed-process-tests]: https://github.com/haskell-distributed/distributed-process-tests

Features:
--------

    [+] Plain-text authorization
    [+] Reliable connections
    [+] Multicast
    [+] Manual connection break

### Plain text authorization

It's possible to add default user and password for all transport
connection by setting authorization ZMQParameters
```haskell
defaultZMQParameters {authorizationType=ZMQAuthPlain "user" "password"}
```

### Reliable connections

n-t-zmq uses Push-Pull pattern to implement reliable connections.

### Multicast protocol

n-t-zmq provide multicast group based on Pub Sub protocol, this
protocol is semi reliable, i.e. all messages will be delivered if they
will not reach High Water Mark event in presence of disconnects.

### Manual connection break

ØMQ automatically reconnects when connection is down and resend
messages so no message will be lost, however this may break some user
assumptions thus it's possible to mark.<commit_msg>(README.md) More typos and rewording.<commit_after>network-transport-zeromq
========================

[![Build Status][Build Status Image]][Build Status]

`network-transport-zmq` provides
a [network-transport][network-transport] implementation based on the
ØMQ brokerless message passing system.

Currently all tests from
[network-transport-tests][network-transport-tests] are passing. All
tests from [distributed-process-tests][distributed-process-tests] are
also passing, except monitoring and connection failure tests.

[Build Status Image]: https://secure.travis-ci.org/tweag/network-transport-zeromq.png?branch=master
[Build Status]: http://travis-ci.org/tweag/network-transport-zeromq
[network-transport]: http://hackage.haskell.org/package/network-transport
[network-transport-tests]: http://hackage.haskell.org/package/network-transport-tests
[distributed-process-tests]: https://github.com/haskell-distributed/distributed-process-tests

Features
--------

* Plain-text authorization
* Reliable connections
* Multicast
* Manual connection break

### Plain text authorization

It's possible to add default user and password for all transport
connection by setting authorization ZMQParameters
```haskell
defaultZMQParameters{ authorizationType = ZMQAuthPlain "user" "password" }
```

### Reliable connections

n-t-zmq uses Push-Pull pattern to implement reliable connections.

### Multicast protocol

network-transport-zeromq provide multicast group based on Pub-Sub
protocol. This protocol is semi-reliable, in that if the high water
mark (HWM) is reached then some messages may be lost.

### Manual connection break

ØMQ automatically reconnects when connection is down and resend
messages so no message will be lost, however this may break some user
assumptions thus it's possible to mark.
{'fraction_non_alphanumeric': 0.10898502495840266, 'fraction_numerical': 0.0, 'mean_word_length': 5.487410071942446, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6752184', 'n_tokens_mistral': 1009, 'n_tokens_neox': 943, 'n_words': 321}