#tcp #ipc #interprocess-communication #length #protocols #command #header

rust_tcp_ipc

Simple to use crate for Interprocess Communication via TCP

12 releases

0.3.1 Dec 22, 2018
0.3.0 Dec 21, 2018
0.2.9 Dec 20, 2018
0.2.5 Nov 25, 2018

#24 in #interprocess-communication

MIT license

49KB
754 lines

Documentation

rust_tcp_ipc

This is a crate for Interprocess Communication via TCP.

It allows for easy, asynchronous sending and receiving messages/commands.

A flexible protocol is used, consisting of a command, a length and a payload.

In detail, it is expected that the used TCP protocol works via exchange of byte collections. A fixed header length is assumed, so - for example - the first 5 bytes of each message encode the message header. The header in turn consists of a command (like Stop, Start, Pause, Load, ...) and a length part. Command & length can be in arbitrary order (but have to be fixed for the protocol). Then the next length-many bytes which are received are the payload of the message. Further received bytes form the next message.

An example is given in the Examples.

To work on this crate was motivated by a Talk given at the Regensburg Haskell Meetup in November 2018.


lib.rs:

This is a crate for Interprocess Communication via TCP.

It allows for easy, asynchronous sending and receiving messages/commands.

A flexible protocol is used, consisting of a command, a length and a payload.

In detail, it is expected that the used TCP protocol works via exchange of byte collections. A fixed header length is assumed, so - for example - the first 5 bytes of each message encode the message header. The header in turn consists of a command (like Stop, Start, Pause, Load, ...) and a length part. Command & length can be in arbitrary order (but have to be fixed for the protocol). Then the next length-many bytes which are received are the payload of the message. Further received bytes form the next message.

An example is given in the Examples.

Dependencies

~87KB