PlugCowboy

Build Status

A Plug Adapter for the Erlang Cowboy web server.

Installation

You can use plug_cowboy in your project by adding the dependency:

def deps do
[
  {:plug_cowboy, "~> 1.0"},
]
end

You can then start the application with:

Plug.Cowboy.Adapter.http MyPlug, []

Supervised handlers

The Plug.Cowboy.Adapter module can be started as part of a supervision tree like so:

defmodule MyApp do
  # See https://hexdocs.pm/elixir/Application.html
  # for more information on OTP Applications
  @moduledoc false

  use Application

  def start(_type, _args) do
    # List all child processes to be supervised
    children = [
      Plug.Cowboy.Adapters.child_spec(scheme: :http, plug: MyRouter, options: [port: 4001])
    ]

    # See https://hexdocs.pm/elixir/Supervisor.html
    # for other strategies and supported options
    opts = [strategy: :one_for_one, name: MyApp.Supervisor]
    Supervisor.start_link(children, opts)
  end
end

Contributing

We welcome everyone to contribute to PlugCowboy and help us tackle existing issues!

Use the issue tracker for bug reports or feature requests. You may also start a discussion on the mailing list or the #elixir-lang channel on Freenode IRC. Open a pull request when you are ready to contribute.

When submitting a pull request you should not update the CHANGELOG.md.

If you are planning to contribute documentation, please check our best practices for writing documentation.

Finally, remember all interactions in our official spaces follow our Code of Conduct.

License

PlugCowboy source code is released under Apache 2 License. Check LICENSE file for more information.