tourmaline alternatives and similar shards
Based on the "Framework Components" category.
Alternatively, view tourmaline alternatives based on common mentions on social networks and blogs.
-
shrine.cr
File Attachment toolkit for Crystal applications. Heavily inspired by Shrine for Ruby. -
Exception Page
An exceptional exception page for Crystal web libraries and frameworks -
praetorian
A minimalist Crystal authorization system inspired by https://github.com/varvet/pundit. -
motion.cr
Motion is a framework for building reactive, real-time frontend UI components in your Amber application using pure Crystal that are reusable, testable & encapsulated. -
kemal-auth-token
Kemal middleware to authentication via HTTP header token using JWT -
device_detector
Crystal shard for device detection by User-Agent string -
mochi
Mochi is a authentication shard inspired by devise. Mochi is designed for the Amber framework with support for both Granite & Jennifer ORM's. -
mime-types.cr
MIME Types for Crystal :: A port of the Ruby MIME::Types library -
Athena Event Dispatcher
A Mediator and Observer pattern event library -
request_id
Middleware for generates / pick up a unique request ID for Crystal servers. -
Athena Negotiation
Framework agnostic content negotiation library
Collect and Analyze Billions of Data Points in Real Time
Do you think we are missing an alternative of tourmaline or a related project?
README
Tourmaline
Telegram Bot API framework written in Crystal. Based heavily off of Telegraf this Crystal implementation allows your Telegram bot to be written in a language that's both beautiful and fast. Benchmarks coming soon.
If you want to extend your bot by using NLP, see my other library Cadmium.
Installation
Add this to your application's shard.yml
:
dependencies:
tourmaline:
github: protoncr/tourmaline
branch: master
Usage
API documentation is also available here.
Examples are available in the examples folder.
Just for README purposes though, let's look at the echo bot example:
require "tourmaline"
class EchoBot < Tourmaline::Client
@[Command("echo")]
def echo_command(ctx)
ctx.message.reply(ctx.text)
end
end
bot = EchoBot.new(bot_token: ENV["API_KEY"])
bot.poll
Development
This currently supports the following features:
- [x] Client API
- [x] Implementation examples
- [x] Easy command syntax
- [ ] Robust middleware system
- [x] Standard API queries
- [x] Stickers
- [x] Inline mode
- [x] Long polling
- [x] Webhooks
- [x] Payments
- [x] Games
- [x] Polls
- [x] Telegram Passport
- [x] HTTP/HTTP Proxies
If you want a new feature feel free to submit an issue or open a pull request.
Who's Using Tourmaline
If you're using Tourmaline and would like to have your bot added to this list, just submit a PR!
Contributing
- Fork it ( https://github.com/protoncr/tourmaline/fork )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request
Contributors
- watzon Chris Watson - creator, maintainer