Introducing Degu

Written for Novacut by Jason Gerard DeRose on 2014-03-27

There's a new component in the Novacut stack called "Degu" (a small, social

Degu includes a lightweight HTTP server that's easy to embedded in desktop
applications. Degu also includes a matching HTTP client. Degu is specifically
aimed at device-to-device, peer-to-peer communication across the local network.

Degu is basically a 2nd generation of the internal Dmedia HTTP server. We were
also running into a few limitations with the `http.client` module in the Python
standard library. It makes a lot of sense to combine an HTTP server and client
into the same library as they have a large common intersection when it comes to
parsing the HTTP wire format and handling IO.

So I felt it was time to refine these elements in our stack, plus make them
easier for other projects to reuse. As always, we're very committed to
advancing the state of the art when it comes to real-time-collaboration, and I
hope that Degu helps enable further experimentation, even when building upon
Dmedia might seem too high-level or too constrained.

The only downside is that because Degu gave us a chance to re-evaluate how we
use SSL, I decided to drop Python 3.3 compatibility (and therefor Ubuntu 13.10
compatibility) a month earlier than we would have otherwise. One of the many
interesting enhancements in Python 3.4 is that TLSv1.2 support was added to the
`ssl` module.

So this month's Novacut release (14.03) will only be released for Ubuntu Trusty
(what will become Ubuntu 14.04 LTS on April 17th). Of course, you'll still be
able to install the Novacut 14.02 stack on Ubuntu 13.10 for the time being.

Note that because Degu strictly configures its `ssl.SSLContext` for TLSv1.2
only, Novacut/Dmedia running on Ubuntu 13.10 will *not* be network-compatible
with Novacut/Dmedia running on Ubuntu 14.04 LTS. If you have multiple devices
running Novacut/Dmedia, please upgrade all of them to Ubuntu 14.04 LTS at the
same time.

If you have any questions about using Degu in your own applications, or how this
change might effect you as a Novacut/Dmedia user, please feel free to ask on
this mailing list, and likewise to ask in the #novacut IRC channel on freenode.

Happy editing!

Read more

Read all announcements