I wonder what kind of Elixir is boiling in there.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples
lib
spec
test
.gitignore
README.md
mix.exs
mix.lock

README.md

Cauldron - an HTTP/SPDY server as a library

Cauldron is a web server implemented as a library, it's easy to embed into other applications and fairly easy to implement DSLs on it, an example of a DSL using cauldron is urna.

Examples

defmodule Foo do
  use Cauldron

  # respond to a GET / request with "Hello, World!"
  def handle("GET", %URI{path: "/"}, req) do
    req |> Request.reply(200, "Hello, World!")
  end
end

# open the cauldron on port 8080
Cauldron.start Foo, port: 8080

Why?

Because I don't like how cowboy handles things and there are no other pure Elixir webservers around that I know of.

Speed

Right now cauldron is faster than node.js and slower than cowboy, there' still space for speed improvements but it's not a high priority right now.

The slowness comes from protocol dispatching in Elixir, protocol consolidation will fix that.

Also we don't use an hand-crafted decoder like cowboy does but use :erlang.decode_packet.