[erlang-questions] [ANN] Nitrogen 2.3 and SimpleBridge 2.0 Released

Jesse Gumm gumm@REDACTED
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
framework that uses Erlang records to generate HTML and Javascript.
* 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
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:

SimpleBridge 2.0
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
application's handlers).
* 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
each backend.
SimpleBridge Changelog:

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).

Jesse Gumm
Owner, Sigma Star Systems
414.940.4866 || sigma-star.com || @jessegumm

More information about the erlang-questions mailing list