Deuterium


Deuterium is a lightweight implementation of HTTP/2 ideally suited for the Internet of Things. Deuterium is a project I created in my free time based on my experiences in the IoT space and in the httpbis working group of the IETF.

If you would like more information on why HTTP/2 makes sense for the IoT, check out my previous blog post.

If you are interested in licensing Deuterium, finding out more information, or even getting your hands on a sample, please contact me.

Here are some of the key features of Deuterium:

  • Designed with a lightweight, embedded, RESTful architecture in mind (example implementation includes “light switch” supporting GET and PUT with XML and JSON payloads)
  • Written as a single-threaded C library, utilizing BSD sockets
  • Implements both a server API and a client API
  • Supports TLS via mbed TLS or OpenSSL
  • Supports the direct and ALPN negotiation mechanisms
  • Supports IPv4 and/or IPv6
  • Highly customizable, including:
    • Number of connections and number of streams per connection
    • Time vs. RAM efficiency tradeoffs
    • Buffer sizes, including support for “special” buffers (e.g., firmware downloads)

Also, if you’re curious about the name, deuterium (²H) is the second isotope of the most lightweight atom, hydrogen. It is also a very powerful isotope used in fusion reactors. So, both extremely lightweight and extremely powerful! More information can be found in the Wikipedia article.