Sha256: 2e04601ca8213dd6f4407b24377c6c24d55e8bde46aee826e4a69a4d07d75c6e

Contents?: true

Size: 1.19 KB

Versions: 1

Compression:

Stored size: 1.19 KB

Contents

# fluffle

[![Build Status](https://travis-ci.org/Everlane/fluffle.svg?branch=master)](https://travis-ci.org/Everlane/fluffle)

An implementation of [JSON-RPC][] over RabbitMQ through the [Bunny][] library. Provides both a client and server.

![](fluffle.jpg)

> A group of baby bunnies is called a [fluffle][].

[Bunny]: https://github.com/ruby-amqp/bunny
[fluffle]: http://imgur.com/6eABy1v
[JSON-RPC]: http://www.jsonrpc.org/specification

## Features

- Client: Thread-safe blocking client (via [concurrent-ruby][])
- Server: One-thread-per-queue implementation (multi-threaded coming soon)
- Server: Easy-to-use built-in handlers and straightforward API for building custom handlers

[concurrent-ruby]: https://github.com/ruby-concurrency/concurrent-ruby

## Examples

See the [`examples`](examples/) directory.

The server provides a few options for handling RPC requests:

- Dispatcher pattern: `dispatcher.handle('upcase') { |str| str.upcase }`
- Delegator pattern: delegate will receive the `#upcase` message with a single argument (the string)
- Custom: any handler needs to implement the API described in `Fluffle::Handlers::Base`

## License

Released under the MIT license, see [LICENSE](LICENSE) for details.

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
fluffle-0.2.0 README.md