Waylon::Core

Waylon is a bot framework in the same vein as Lita built to make creating bots easy and fun. It supports swappable sensory inputs (chat platforms, web endpoints, and more), easy to build Skills, built-in and extensible permissions, and modern JSON logging.

This repo/library is the core of Waylon; it provides the essential pieces of the framework and some working examples.

Why Waylon

Waylon is built to be scalable and to deliver features missing in other chat frameworks. For instance, it supports self-reporting and discovering plugin features (such as supporting HTML cards, reactions, etc.) to making Skills more powerful and dynamic. Waylon also supports a full, shared caching layer to make scaling simple. It also makes heavy use of Redis for queuing work, meaning zero-downtime upgrades and faster user responses.

Installation

Add this line to your application's Gemfile:

gem 'waylon-core'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install waylon-core

If you're building a plugin for Waylon, you'll only need to require the core:

require "waylon/core"

If you're launching your own bot, require the entire library and plus any additional plugins:

require "waylon"

Usage

Demo Mode

Alone, this library isn't super useful for running a bot, but it does include a "demo", local REPL mode for experimenting. To use it, run rake demo.

Development

Waylon's development pipeline makes heavy use of RSpec for testing (and SimpleCov for reporting on coverage), Rubocop for linting/format checking, YARD for documentation, and RoxanneCI for CI. Most of this is built-in and will work out-of-the-box for GitHub PRs.

To get started locally, after checking out the repo, run bin/setup to install dependencies. Then, run bundle exec rake to run the tests and linting. You can also run bin/console for an interactive prompt that will allow you to experiment.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/jgnagy/waylon-core.

License

The gem is available as open source under the terms of the MIT License.