Discovering Erlang #1
This first post will include a large-ish number of Erlang links that’s I’m aggregating mostly consisting of existing web frameworks.
These are servers commonly used for deployment, similar to Ngnix, Lighttpd, Apache and so on.
- Mochiweb is a very lightweight HTTP server written in Erlang.
- Yaws is a HTTP high perfomance 1.1 webserver particularly well suited for dynamic-content web applications.
- Inets is a container for Internet clients and servers. Currently, an HTTP client and server, a TFPT client and server, and a FTP client has been incorporated into Inets. The HTTP server and client is HTTP 1.1 compliant as defined in RFC 2616.
These are actual web frameworks which make developer’s lives easier, similar to Ruby, Merb, Sinatra and so on.
- Nitrogen uses an event-driven model built on top of Erlang pattern matching. Nitrogen allows you to tag elements with any Erlang term, and then act on the tag in server-side code when the user clicks on, hovers over, or otherwise interacts with the element. Catching the event is as simple as writing an Erlang function.
- Webmachine is not much like the Web frameworks you’re used to. It 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.
- ErlyWeb is a component-oriented web development framework written in Erlang and designed to work with Yaws, a high-performance Erlang web server. ErlyWeb simplifies building database-driven webapps that follow the tried and true MVC pattern using a great language with many outstanding strengths.
- The Erlang Web is an open source framework for applications based on HTTP protocols, giving the developer better control of content management. With Erlang Web’s simple but extensible concept of including dynamic content in pages, libraries of reusable components can be built. Currently it supports INETS and Yaws webservers, but others are planned in the future.
- Chicago Boss is fully asynchronous, using one single process to handle hundreds or thousands of simultaneous requests, and thus it solves the classic c10k problem. All other web frameworks will break down and cry if you ask them to process more than a few dozen simultaneous requests on a single machine. Chicago Boss is built with Erlang, the same platform used by banks and telecoms to achieve unprecendented scalability and (no exaggeration) 99.9999999% reliability.
Other Erlang Projects
This is a list of interesting Erlang projects that i’ve found on the web so far.
- Fuzed is an Erlang-based clustering system designed to let several single-threaded processes (which may or may not be reliable) form
into a pool which can serve requests to remote hosts. These resources need not be homogeneous, Fuzed breaks them up into homogeneous pools
internally and serves out requests without “crossing the streams” of different software/versions of software.
- ErlyDTL is an Erlang implementation of the Django Template Language. The erlydtl module compiles Django Template source code into Erlang bytecode. The compiled template has a “render” function that takes a list of variables and returns a fully rendered document.
- EUnit is a unit testing framework for Erlang. It is very powerful and flexible, is easy to use, and has small syntactical overhead.
- Erlang-AMF is an AMF0 and AMF3 library (ActionScript data exchange).