This project began at Basho, the creators and maintainers of Riak. Due to the importance of webmachine to the broader Erlang community, a new organization was formed. Please contact @seancribbs to get involved.
Webmachine is an application layer that adds HTTP semantic awareness on top of the excellent bit-pushing and HTTP syntax-management provided by mochiweb, and provides a simple and clean way to connect that to your application's behavior.
More information is available here. You can also read past blog posts about Webmachine here.
Webmachine is a rebar3 project.
Running all tests and dialyzer is as easy as
make all
However, if you'd like to run them separately:
- EUnit:
rebar3 eunit
- Dialyzer:
rebar3 dialyzer
If you don't have rebar3
, you should get it. If you don't want to,
it's downloaded as part of make all
A rebar3 template is provided for users quickly
and easily create a new webmachine
application.
$ mkdir -p ~/.config/rebar3/templates
$ git clone https://github.com/webmachine/webmachine-rebar3-template.git ~/.config/rebar3/templates
$ rebar3 new webmachine your_app_here
Once a new application has been created it can be built and started.
$ cd your_app_here
$ rebar3 release
$ _build/default/rel/your_app_here/bin/your_app_here console
The application will be available at http://localhost:8080.
To learn more continue reading here.
We encourage contributions to webmachine
from the community.
-
Fork the
webmachine
repository on Github. -
Clone your fork or add the remote if you already have a clone of the repository.
git clone [email protected]:yourusername/webmachine.git
or
git remote add mine [email protected]:yourusername/webmachine.git
- Create a topic branch for your change.
git checkout -b some-topic-branch
-
Make your change and commit. Use a clear and descriptive commit message, spanning multiple lines if detailed explanation is needed.
-
Push to your fork of the repository and then send a pull-request through Github.
git push mine some-topic-branch
- A community maintainer will review your pull request and merge it into the main repository or send you feedback.