Last.fm Open Sources Moost, A C++ LibraryBy: Zach Walton - February 19, 2013
Last.fm may be well known for its Internet radio services, but the company is also breaking into the open source scene. It’s latest release is sure to pleas all the C++ coders out there.
Last.fm’s Marcus Holland-Moritz announced today that moost, it’s C++ library is now available to all under an open source license. He says that moost has been in development by Last.fm’s MIR team over the past five years, and contains all the tools and utilities they use on the site. It’s based on the boost C++ libraries.
Moost contains a number of features that programmers will find handy. Here’s some of the features you can expect when using it:
There are a lot of different things in moost. Some are really simple, yet very helpful in day-to-day work, like the which template that allows you to use pairs (and containers storing pairs) more easily with standard algorithms; or stringify, a function template that turns complex objects into strings. Other parts are slightly more sophisticated: for example, moost contains the framework that is shared by all our backend services, and that allows you to write a daemonisable service with logging, a set of standard options and even a service shell that multiple users can connect to when the service is running, all in a few lines of code.
As our backend services are inherently multi-threaded, there’s also a bit of threading support in moost. For example, the safe_shared_ptr template is immensely useful for resources that are shared between threads and need to be updated atomically.
Moritz says that moost also features memory wrapped dataset classes and an abstraction for loading shared objects. Both of which will make it easier to manage resources while building out large datasets.
You can check out moost for yourself now over at GitHub. Moritz encourages any interested developers to contribute to the project if they have the time.