[erlang-questions] [ANN] Nitrogen 2.3 and SimpleBridge 2.0 Released
Thu Feb 19 22:50:07 CET 2015
Hello Fellow Erlangers,
I'm happy to announce the release of the Nitrogen Web Framework 2.3
and Simple Bridge 2.0
As a brief review:
* Nitrogen (http://nitrogenproject.com) is an event-driven Erlang web
* SimpleBridge (http://github.com/nitrogen/simple_bridge) is an
abstraction layer on top of existing Erlang webservers that provides a
homogeneous interface the following Erlang servers (alphabetically):
Cowboy, Inets, Mochiweb, Webmachine, Yaws.
Guide to upgrading to Nitrogen 2.3:
Nitrogen 2.3 adds:
* Convert to SimpleBridge 2.0 (See below), allowing for conversion to
any supported webserver by changing a config variable and adding rebar
* Long-overdue websocket support added (with a safe fallback to
ajax/comet, and broken connection detection/notification/reconnection)
* A browser-based test system (validate that your interface is working
properly in the browser and communicating with the server as
* More diverse routing options like a REST handler and "smart
extensions" (a different entry point into a module based on request
* A debug crash handler (enabled by default) that gives more useful
information to the client when crashing than just "Internal Server
* Improved Unicode handling
* The usual: New elements, actions, API functions, documentation, etc
(my favorite new element is the #sync_panel element, which attaches a
panel to a comet pool, and any changes to it are broadcast to all
other clients connected to the pool).
* Nitrogen Changelog:
This release was super fun to build, and adds a whole slew of new and
interesting stuff. It has been fundamentally reworked:
* Eliminated Parameterized Modules while retaining the ability to use
the tuple-module syntax for backwards compatibility. The new
"official" API is through the "sbw" module (for "simple bridge
* Added initializers for each server (supervisors and entry point
modules) based on the simple_bridge.config file (setting up routing
tables, bound ports and addresses, max post sizes, etc)
* Added a simple_bridge_handler behavior, which you would use to
define your application or framework's entry point (basically, the
anchor translates the server's expected entry point into your
* While each server responds in its own way to similar requests (lists
vs binaries, or IP tuples vs IP Strings), SimpleBridge will now return
consistent results regardless of the chosen server, and where
applicable will work in a Type-In-Type-Out fashion (binary() ->
binary(), list() -> list()).
* Added websocket abstraction, using native websocket functionality
for cowboy and yaws, and hijacking the socket for inets, mochiweb, and
webmachine. It passes the Autobahn test suite.
* Completely rewritten test suite, which now uses the same tests for
Overall, I'm pleased as punch with this release, and it's been a long
time coming. I've had it running in production on my products for
several weeks now without incident (I always run the releases in
production before announcing the release).
On a personal note, working on Nitrogen continues to give me a
tremendous amount of joy. Indeed, it is one of those things that
doesn't really feel like work, it's almost relaxing.
Also, as those of you who were at Chicago Erlang Conference know, I'm
co-authoring a book on Nitrogen development, which can be downloaded
in its current beta form at: http://builditwith.com/nitrogen
Finally, thanks to everyone who contributed code, submitted bug
reports and issues, asked questions, and also submitted errata for the
book. Every little bit helps and you folks are great for it!
Thanks all again, and happy hacking!
P.S. Looking forward to seeing some of you tonight at Chicago Erlang
User Group (http://www.meetup.com/ErlangChicago/events/220276271/)
P.P.S The Raspberry Pi builds for Raspbian will be delayed a bit until
my new Raspberry Pi gets delivered. All other binaries (Linux, OSX,
Windows, and FreeBSD are ready to go).
Owner, Sigma Star Systems
414.940.4866 || sigma-star.com || @jessegumm
More information about the erlang-questions