M2 is a network message bus designed to support low-latency, service-routed message passing, with push updates and scalable publish / subscribe capabilities. Client support exists for Tcl and Javascript currently, with others planned.

Available at: http://sourceforge.net/projects/m2-bus/files/

Documentation at: http://sourceforge.net/apps/mediawiki/m2-bus/index.php?title=Main_Page

m2 contains an array of interesting supporting libraries:

  • cflib - the place where all the general odds and ends land up that don't fit elsewhere.
  • dsl - a tiny package to provide a framework for building domain specific languages.
  • sop - State Oriented Programming - a set of classes that act like logic gates.
  • crypto - a pure Tcl implementation of RSA and blowfish.
  • evlog - a framework for collecting high-resolution timestamped log events from a group of communicating processes.
  • logging - a lightweight logging framework.
  • netdgram - presents an abstract interface for transporting datagrams, with a plugin-based backend.
  • tbuild - a really nasty hack to automate all the common tasks in building tms, starkit-like applications, and deb and rpm packages for multiple architectures.
  • hash - a tiny c extension that implements fast hashing, currently just MD5.
  • sockopt - a tiny c extension to expose some properties of TCP sockets not currently accessible from Tcl, like keepalive and nodelay.
  • cfkit - a tclkit like runtime based on trofs. Mainly exists because I couldn't get kbskit to build on AIX.