Elle, reloaded
You may have heard of the recent open-sourcing of our C++ core library, Elle, announced in a previous blog post.
We are it has created a wave of interest and led to a few suggestions and merge requests. We are especially proud that Elle was featured on the 2nd of March, 2017 cppcast (podcasts I highly recommend if you are interested in C++).
However, because of the history behind Elle, a 7-year-old library, which used to be closed-source, designed and used by a small team, Elle was more an holdall for our core libraries. The source code was barely documented and 4 namespaces were cohabiting.
We chose to revamp Elle, by cleaning everything, unifying coding style, documenting, writing examples, and more, to give Elle a new face. And it's live!
A quick reminder of what Elle is
Elle is a “framework“, written in C++14, that contains:
- reactor: Asynchronous framework based on coroutines
- das: Compile-time introspection via symbol-based metaprogramming
- cryptography: Object-oriented API around OpenSSL
- protocol: Versioned and multiplexed communication protocol for remote procedure calls (RPCs)
- And more...
In addition, Elle is cross-platform. It works on common environments and architectures, including ARM (Elle has been tested on Android, iPhone and Raspberry Pi). To date, Elle was deployed on close to a million devices, thanks to Infinit's previous product infinit.io.
The new face of Elle
As an open library, Elle now follows the same structure Boost uses:
- A unique namespace
elle - Most classes are now documented (abstract, example and public methods documentation)
- Libraries names are now prefixed by elle_, e.g.
libelle_<module>.so
Therefore, if you already use Elle, you will need to adjust your code because:
reactor::becameelle::reactor::,infinit::cryptography::becameelle::cryptography::,infinit::protocol::becameelle::protocol::, etc.libreactor.sobecamelibelle_reactor.so,libelle.sobecamelibelle_core.so, etc.- etc.
Now that things are getting serious, Elle even has its own logo. Read more...
Interested in trying Elle?
As mentioned earlier, Elle is already accessible on GitHub (here) and includes a few examples to demonstrate what features it provides.
Elle doesn't have, strictly speaking, a standard release life cycle. For the sake of simplicity, we will weekly upload the newest 64-bits version for the LTS Ubuntu here along with a Docker image (infinitd/elle) containing Elle, built and installed, examples and a development environment (a compiler, buildsystems, etc.) so you can give Elle a quick try.
For more details about building or testing Elle, you can consult Elle's wiki on GitHub.