GithubHelp home page GithubHelp logo

spk121 / jozabad Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 1.45 MB

A ZeroMQ-based networking library implementing the Switched Virtual Circuit pattern

License: GNU General Public License v3.0

Makefile 1.05% C 96.30% C++ 1.48% Objective-C 0.02% Perl 0.92% Awk 0.02% Shell 0.12% Python 0.08%

jozabad's Introduction

Jozabad

Jozabad is a broker and client library of a custom hub-and-spoke communication protocol. Workers connect to a broker and send messages to the broker. The broker joins pairs of workers together in channels and forwards messages between connected workers.

Jozabad is thus, basically, like a telephone exchange. It is inspired by the ITU's X.25 protocol.

The basic goals of the protocol are these:

The broker ensures that

  • messages are valid
  • data rates are obeyed

A worker can

  • connect / disconnect to the broker at will
  • get a list of other available workers from the broker.
  • request a channel with any other idle worker

The channel

  • is exclusive -- a worker can have only one channel at a time
  • is persistent -- it exists as long as the workers want
  • is stateful
  • is pseudonymous -- the workers only know one-anothers' pseudonym, and not their IP address

The future goals of the protocol are these:

  • The protocol will use future ZeroMQ security protocols to authenticate workers and encrypt traffic.

The name "Jozabad" refers to a talented archer that fought with the biblical King David. The image the archer is a metaphor for hub-to-node information transmission.

Jozabad is the lowest level of a three layer application stack.

  • Jozabad handles low-level communication.
  • Johanan is a packet assembler and disassembler, expressing a stream-like interface (fprintf, fgetc) for intra-worker communcation based on Jozabad messaging.
  • Jahaziel is a text protocol with in-band escapes for colors, graphics, and audio, and a rendering engine for that protocol.

Documentation

The documentation, such as it is https://github.com/spk121/jozabad/blob/master/doc/jozabad.pdf?raw=true

References

  • Jozabad is inspired by the ITU's X.25 protocol: specifically its message types and state machine. It is not a true implementation of X.25 over TCP, which is known as XOT.
  • It uses ZeroMQ sockets to do all the heavy lifting.

jozabad's People

Contributors

spk121 avatar

Watchers

 avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.