Phoenix, a Web framework intended for the "real-time Web" and "beyond the browser" usage, has reached the 1.0 release stage. "After a year and a half of work, 2,500 commits, and 30 releases, Phoenix 1.0 is here," developer Chris McCord said in a blog post on Friday.
The framework was written in the Elixir dynamic functional language and implements the server-side MVC pattern. It serves as the top layer of a multilayer system intended to provide modularity and flexibility; other layers include Plug, which is a specification for building composable modules for Web applications, and Ecto, a language-integrated query composition tool and database wrapper for Elixir.
McCord cites the framework's syntax, tooling, and fast runtime as highlights. He also notes the intention to tackle the real-time Web. "The goal was to make real-time communication just as trivial as writing a REST endpoint," he said. "We've realized that goal with channels."
These channels provide a multiplexed connection to the server for bidirectional communications. "Phoenix also abstracts the transport layer, so you no longer have to be concerned with how the user has connected," said McCord. "Whether WebSocket, long-polling, or a custom transport, your channel code remains the same." Also featured is a JavaScript client that provides an API for client-server communication.
In addition to targeting traditional browser applications, Phoenix connects iPhones, handsets, and smart devices, McCord said. This was achieved via channel clients for Objective-C, Swift, C#, and Java. He cited a demonstration of a Phoenix chat application running on an Apple Watch, an iPhone, and a browser, powered by Phoenix native channel clients.
In the future, Phoenix will get channel presence features, internationalization and other capabilities.