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:: became elle::reactor::, infinit::cryptography:: became elle::cryptography::, infinit::protocol:: became elle::protocol::, etc.
  • libreactor.so became libelle_reactor.so, libelle.so became libelle_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.