A modern, elegant, multithreaded, event-driven, multi-protocol, extensible chat bot written in Ruby and C. A reboot of Auto, she stylishly serves your automated chat needs.
$ gem install syndi
Syndi is not production-ready; she is in early development.
Syndi employs a simple yet powerful event system and uses the advanced Celluloid multithreading framework for concurrent processing and network communications.
Syndi offers two application programming interfaces: her core library API which allows for extension by frameworks, and the higher-level plugin API, which can be used to make "jewels."
She is written mostly in Ruby with some portions of her kernel in C, the latter of which is written with both Windows and POSIX in mind. She runs on Ruby MRI/YARV 2.0 and later.
Unlike her predecessor, Syndi has no IRC-specific code in her core. The IRC functionality is entirely modular and she is ready to support multiple protocols.
Installation, configuration, usage, and other topics are thoroughly documented in the Syndi Handbook.
The API (which is yet unstable) is documented with YARD and Markdown. See this page.
Syndi was initially written by Autumn Perrault (noxgirl).
It is developed actively by the core team:
This web site was designed by the visual team:
Ah, where to begin?
Hi, I’m Autumn. I’m the creator of Syndi. I started her initially in 2009 as Auto, a closed-source IRC bot written in the mIRC scripting language which primarily serviced the GeekShed and TechnoIRC IRC networks. It was fairly popular for its extensive set of features; that encouraged me to take it further.
Auto was rewritten in PHP under the GNU General Public License v2 and released as v2.0, although interest in it quickly declined as the PHP language simply failed to do it justice. Nonetheless, it was the first open-source release.
A group named Xelhua was formed who took upon themselves the task of rewriting Auto in the Perl programming language and releasing it as v3.0 in early 2011. This release was substantial and developed popularity on the Freenode IRC network, among others. In the summer of that same year, Xelhua dissolved and a new group, Arinity, led by Matthew Barksdale, took over the project and made some improvements I would consider very tasteful.
Perhaps unfortunately, Auto v3.0 too declined. Matthew restored leadership to me and I initiated a rewrite in the Ruby and C programming languages in December 2012, which I originally planned to be v4.0 of Auto.
However, that did not quite last. I decided “Auto” to be too generic, too unoriginal a name, and knowing that I had conjured it at eleven years of age, I ultimately decided on disposing of that name and naming the reboot, Syndi.
Matthew Carey joined me in this reboot, and has been an indispensable team member. It’s a large project, but we’re making progress!
Syndi is worlds more elegant than her predecessor, and we intend her to be remarkably advanced yet modular. She employs the lovely features offered by the latest implementation of Ruby, v2.0.
Anyone is welcome to join in this endeavor. Check out the GitHub repository. You may care also to join the official IRC channel, which is #syndi on Freenode.
Syndi has been initially codenamed “Phoenix,” because she has regenerated from the ashes of Auto into a far superior program. (:
You have several options for downloading Syndi, which is available for users of Linux, BSD, Mac OS X, and Microsoft Windows.
Currently, no stable releases are available.
Testing releases (called “prereleases”) are packages made of the master branch which precede stable releases. They have the latest features, but are made available for testing purposes and may prove unreliable in a production environment.
You can always obtain the latest prerelease via RubyGems:
$ gem install syndi
Our Git master branch has the latest features, but may be unstable from commit to commit. Use only if you’re feeling adventurous.
$ git clone -b master git://github.com/syndibot/syndi.git $ cd syndi $ gem install bundler $ bundle install $ rake $ rake install
The Git repository is the forge for Syndi, and therefore contributions should be made there. To contribute, please peruse the included CONTRIBUTING.md file.
Old releases and prereleases can be obtained through their respective Git tags (every release is tagged). See a list as well as archive links here.
We believe strongly in good documentation which makes as few assumptions of a person’s preexisting knowledge as is reasonably possible. You may find the community-maintained wiki to be of interest.
Finally, Syndi’s code and API are documented with YARD. You may access the documentation through these links:
© 2013, Autumn Perrault. All rights reserved.