This articles was published on 2017-02-02

4 Years of mruby GEMs

Lately I was quite occupied with many private and professional projects. Yet by now they have stabilized enough so that I can take time out for some side projects. So let’s have a look at mruby again.

Even though that I had a lot of projects using mruby in very different areas over the past four years, I lost track a bit about the latest development of mruby itself. For me mruby had already reached prime-time something like 3 years ago when a friend of mine released his first consumer product based on mruby. Since then I have used mruby to:

  • build a 4G development platform based on an industrial SDR system
  • provide a toolchain to simplify “digitalization” of machines used in factory automation
  • implemented a mini-hypervisior in combination with OpenWRT
  • and many other still ongoing research projects

So to keep-up with the latest changes I decided to start with a quick look at mruby’s GEMs and made a small graph of the historical growth of the quantity:

# mgem size
  Total # of GEMs: 227
0 GEMs in 2013. 227 GEMs in 2017.
mruby GEM growth from 2013 to 2017.

Even though the count of 227 GEMs is tiny compared to Rubygems (which counts 128,547), for the niche mruby is trying to fill there is a constant extend of new libraries which are providing features necessary for using Ruby in the embedded world.

As we do not have any statistics of the usage of mruby GEMs I can’t say which are the most popular ones but as a matter of fact the IIJ collection belongs to the most frequent ones I’m using. Interestingly in the past, most GEMs were written only by a handful of people (very prominent next to IIJ was from my perspective matsumotory and mattn). Yet when I look today at new gems it seems this trend has stopped and many different contributors are adding GEMs for very different purposes. The current contributor count for the mgem-list has reached 65!

In the coming days and weeks I will look more into what else happened with mruby. Things I want to look at are:

  • security improvements based on Spotify’s bug-hunting
  • mruby/c (reduction of mruby interpreter for even smaller devices)
  • general commit history

I would appreciate any kind of input from you if you know other interesting mruby relevant topics (use-cases, hacks, etc.) Just drop me a mail (daniel [at] bovensiepen [dot] net).