rockethook

Version, currently master branch1 version
  • master branchlatestNov 16, 2016

github.com/nsweeting/rockethook

Fire off webhooks with rocket speeds.

1 stars
0 dependents
License: MIT

Installation

# Add this to your shard.yml
dependencies:
  rockethook:
    github: nsweeting/rockethook
    branch: master

master is a branch, not a release, so this tracks it rather than pinning a version.

Then run:

shards install

shard.yml

Crystal
no constraint declared
License
MIT
Author
Nicholas Sweeting

Dependencies

Runtime Dependencies

  • pool*github: ysbaddaden/pool, branch: master
  • kemal*github: sdogruyol/kemal, branch: master
  • redis*github: stefanwille/crystal-redis, branch: master

README

alt tag

Rockethook is a microservice dedicated to delivering webhooks. Backed by the Crystal Language and Redis, Rockethook can achieve unmatched speeds with little effort. And it all compiles to a small executable that is easy to setup and deploy.

Some features of Rockethook include:

  • Ability to add context and event info to each webhook via headers.
  • Automatically generates HMAC headers for source verification.
  • Support for max attempts and retry schedules.
  • Fast HTTP requests with Keep-Alive headers.
  • Client support for Ruby and Crystal.
  • Support for blacklisting failed hosts.
  • Ops center provides insight into your Rockethook service.

Rough benchmarks on Ubuntu 16.04:

RuntimeRSSTimeThroughput
Crystal 0.19.215MB5.220,800 webhooks/sec

Installation

Prerequisites:

  • The latest version of crystal (> 0.19.0).
  1. Clone the repo:

    $ git clone https://github.com/nsweeting/rockethook.git
  2. Switch to the repo directory:

    $ cd rockethook
  3. Build:

    $ make install
  4. Add /user/local/bin to your $PATH for access to Rockethoook from the command-line.

    $ echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bash_profile

    Ubuntu Desktop note: Modify your ~/.bashrc instead of ~/.bash_profile.

    Zsh note: Modify your ~/.zshrc file instead of ~/.bash_profile.

Usage

TODO: Write usage instructions here

Development

TODO: Write development instructions here

Contributing

  1. Fork it ( https://github.com/nsweeting/rockethook/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors

  • nsweeting Nicholas Sweeting - creator, maintainer