Giter Site home page Giter Site logo

journeta's Introduction

Journeta

About

Journeta is a dirt simple peer discovery and message passing library for processes on the same LAN, requiring no advanced networking knowledge to use.

Only core Ruby libraries are required, making the library fairly light. As all data is sent across the wire in YAML form, any arbitrary Ruby object can be sent to peers, provided they:

  1. Are running a compatible Journeta version.
  2. Have access to the same class definitions if you are sending your own custom objects.
  3. Do not have a firewall preventing network I/O.

Journeta uses Ruby threading to manage the asynchronous nature of peer-to-peer I/O. Data you send from your application thread will be queued and sent asynrchonously as soon as possible. For insight into events internal to the library, start ruby with the --debug options.

Bundled Sample Code

Instant Messenger

A completely distributed, zero-configuration-required chat room script.

Fire up several instances in separate terminals. Multiple instances on the same machine is ok. Everything you type will automatically be sent to all other instances on the LAN! For detailed internal event details:

ruby --debug journeta_instant_messenger.rb

Network Status

Monitors the presence of all peers on the network.

journeta_network_status.rb

Distributed Master/Slave Job Queue

A simple queue managed by a server. Each client produces jobs to be queued, and processes jobs sent from the server(s). All nodes automatically find eachother. Try running multiples clients, and then multiple servers. Notice that when you have N servers, each job gets run N times, and not necessarilly by the same client!

journeta_queue_server.rb
journeta_queue_client.rb

Author

Preston Lee

journeta's People

Contributors

nashby avatar preston avatar raventid avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

nashby raventid 1gor

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.