Sidekiq.cr
Simple, efficient job processing for Crystal
Install / Use
/learn @hugopl/Sidekiq.crREADME
Sidekiq.cr
Sidekiq is a well-regarded background job framework for Ruby. Now we're bringing the awesomeness to Crystal, a Ruby-like language. Why? To give you options. Ruby is friendly and flexible but not terribly fast. Crystal is statically-typed, compiled and very fast but retains a similar syntax to Ruby.
Rough, initial benchmarks on macOS 10.14.5, ruby 2.7.2:
Runtime | RSS | Time | Throughput --------|-----|------|------------- Sidekiq 6.2.0 | 55MB | 16.4 | 6,100 jobs/sec Sidekiq 6.2.0/hiredis | 49MB | 13.0 | 7,900 jobs/sec Crystal 0.35.1 | 15MB | 3.8 | 26,000 jobs/sec
If you have jobs which are CPU-intensive or require very high throughput, Crystal is an excellent alternative to native Ruby extensions. It compiles to a single executable so deployment is much easier than Ruby.
Getting Started
Please see the wiki for in-depth documentation and how to get started using Sidekiq.cr in your own app.
Support
Sidekiq.cr is community-supported and not commercially supported by @mperham and Contributed Systems. General maintenance and bug fixes are always welcomed.
Help wanted
See the issues for chores and other ideas to help.
Things that do not exist and probably won't ever:
- Support for daemonization, pidfiles, log rotation - use Upstart/Systemd
- Delayed extensions - too dynamic for Crystal
The Ruby and Crystal versions of Sidekiq must remain data compatible in Redis. Both versions should be able to create and process jobs from each other. Their APIs are not and should not be identical but rather idiomatic to their respective languages.
Naming
Sidekiq is a registered trademark of Contributed Systems who has granted use of the name to this project.
Thanks
Originally developed by Mike Perham, http://www.mikeperham.com. Maintained by Hugo Parente Lima.
Related Skills
node-connect
351.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
110.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
351.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
351.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
