README.md

# Pixie

[ ![Codeship Status for messagerocket/pixie](https://codeship.com/projects/eb1dde70-2d10-0133-c122-16954c8f6a18/status?branch=master)](https://codeship.com/projects/98754)

*Pixie is a [Faye](http://faye.jcoglan.com) compatible Bayeux implementation*

*WARNING: Pixie is under heavy development.*

Pixie is inspired by Faye and was originally planned as a port, but has
diverged significantly as I've learned the Erlang way of modelling these
sorts of problems.

# Heroku Add-on

If you're planning on running Faye on Heroku you're probably going to have a bad time.  Take a look at [MessageRocket](https://messagerocket.co/) as an alternative, and help support the author to maintain more great open source projects.

## License

Pixie is Copyright (c) 2015 Resistor Limited and licensed under the terms of
the MIT Public License (see the LICENSE file included with this distribution
for more details).

## Installation

Add `pixie` to your dependencies in the `mix.exs` file:

```elixir
def deps do
  # ...
  {:pixie, "~> 0.0.1"}
  # ...
end
```

Then use `mix deps.get` to download Pixie from [hex](https://hex.pm/).

## Status

The server is under heavy development, at the moment it can handle the
following message types:

  - Handshake
  - Connect
  - Disconnect
  - Subscribe
  - Unsubscribe
  - Publish

over the following transports:

  - Long polling
  - Cross-origin long polling
  - Callback polling (JSON-P)
  - Websocket

## Usage

As the server doesn't really do anything at the moment in development I'm
running `mix pixie.server`, opening [localhost:4000](http://localhost:4000)
in my browser and manually starting a Faye client:


```javascript
client = new Faye.Client("http://localhost:4000/pixie");
client.connect();
```

## Running the tests

Run `mix espec`.

## Contributing

1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Added some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request