YAMI - Yet Another Messaging Infrastructure


YAMI Home

Concept

Specification

Implementation

What next?

Questions
& Answers


Comments

The YAMI project is supposed to provide a simple language- and platform-independent communication library.

It's not supposed to substitute "big" middleware solutions like CORBA or JMS, but thanks to much simpler rules it's built on, it can become a useful part in some class of distributed systems, whether they are full-blown object-oriented systems or the simplest client-server solutions.

YAMI is a complete and consistent environment, and currently supports:

Operating Systems: FreeBSD, GNU/Linux, LynxOS, Mac OS X, MS Windows, ...
Programming Languages: C, C++, Python, Tcl, as well as Java and PHP (*)

(*) - as a third-party package

YAMI is a free software project (both as in "free beer" and as in "freedom"), which means that everybody is invited to use it, use its sources or take part in its development as well as provide comments on its design and implementation.

The main features of YAMI that make it competing with other solutions are:

  • Extremely small size of the compiled library (around 100kB or below, depending on the operating system).
  • Low memory and resource consumption, which is also fully tunable.
  • Load-balancing capability with message forwarding.
  • Automatic recovery from connectivity problems.
  • Comprehensive thread management options.
  • Extremely easy and straightforward API for scripting languages.
  • Ability to "bypass" firewalls with reverse message routing.
  • Portability across wide range of compilers, operating systems and hardware platforms.

The above features of YAMI, backed by several years of project evolution, made it a mature and solid foundation for many distributed systems, ranging from astronomy to health-care, as well as system diagnostics and administration. YAMI is also used in many smaller projects, where it provides easy to use solution for messaging and networking.

Copyright notice


On the left side there are links to different parts of this web-page:

YAMI Home

This brings you here.

Concept

The description of the YAMI concept and its communication model. You should read it if you want to use YAMI in whatever form.

Specification

This is for interest only to developers who want to write their own low-level software, like agents.
You can find there the formal definition of the data sent over the network.

Implementation

  • Source code, documentation, tutorials and libraries to download.
  • Diagrams describing how and why it works.
  • Performance test results.

What next?

This is the description of what I would like to provide (contributions from others welcome!) in the future.

Questions & Answers

Simple discussion forum for everybody that has any question or problem with the YAMI.

Comments

Comments that everybody can write.