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.


Get started with Infinit in less than 10 minutes! Test it!

Antony Méchin

Software engineer at Docker (from the former Infinit team)

Paris

Subscribe to Infinit's Blog

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!