Peribot is a message processing framework in Ruby, designed mainly to facilitate the creation of IRC-style bots for services like GroupMe. That is, it is explicitly designed to provide a common set of services for multiple "groups" at once (in contrast with frameworks like Hubot that generally operate with a single set of users).
The framework is designed for responsiveness and ease of development. The concurrent processing model ensures that individual groups' actions don't lead to delays for others, while facilities provided by the framework make it easy to develop powerful, thread-safe services. Configuration is designed to be simple and fast for bot maintainers.
With Peribot::GroupMe, running a GroupMe bot is as simple as running a Ruby script. Thanks to push notification support, there's no need to run a web server and manage callback URLs.
Development and Usage Status
Peribot is actively maintained as of 2017-11-19. However, to my knowledge, it is not tested or deployed outside of two bots that I personally operate.
The overall public interface should remain somewhat stable at this point. That
said, architectural and interface changes may still be made when they improve
the state of things. In the event that breaking changes are required, I use a
form of semantic versioning to help reduce their impact. As the
of Peribot is currently 0, I typically increment the
MINOR version on
breaking changes and the
PATCH version on new features. When maintaining a
bot, a version specifier such as
~> 0.10.0 in your Gemfile is recommended.
Framework classes are pretty well-documented, and may be a good start toward understanding Peribot. I have also made several resources available on the Peribot wiki, including the Zero to Peribot tutorial (which is designed to help you set up a basic bot with Peribot).
Additional guides may be created in the future.
Bug reports and changes are welcome at https://github.com/ahamlinman/peribot. Please ensure that contributions are unit tested, and please update the changelog!
I also welcome helpful comments and criticism regarding the framework. My contact information is listed on my GitHub profile at https://github.com/ahamlinman.
Peribot is available under the terms of the MIT License.