In 2013, I discovered the Rust programming language and quickly decided to learn it and make it my main programming language.

In 2017, I moved to Berlin and joined Parity as a Rust developer. The task that occupied my first few months was to build rust-libp2p, a peer-to-peer library in asynchronous Rust (~89k lines of code at the moment). Afterwards, I integrated it in Substrate (~400k lines of code), and have since then been the maintainer of the networking part of the code base.

In the light of this recent blog post and this twitter interaction, I thought it could…

Linux was first started in 1991, 29-and-a-half years ago. The POSIX standard, which Linux implements, was started in 1988, 33 years ago. Both of these technologies have seen very little evolution in the core of their design over time, despite all the progresses made in software engineering and computer science.

In this article, I will examine, topic by topic, why all the current popular operating system are in my opinion obsolete, and what to replace them with.

Disclaimer: while I know a thing or two about computers, I am in no way an expert in operating systems. I’ve never been…

If you have been following the development of Polkadot, Ethereum 2.0 or Substrate, you may have heard of libp2p. Libp2p is a network framework that allows you to write decentralized peer-to-peer applications. Originally the networking protocol of IPFS, it has since been extracted to become its own first-class project.

As part of the development process of Polkadot, we created our own implementation of libp2p written in Rust, with the intent of using it in Polkadot and Substrate. While not completely mature, it is already quite robust and successfully powering the current testnets.

So what is libp2p and why did we…

People who know me in the Rust community usually think that I’m a game developer, since I contribute mostly to game development libraries in Rust. What they probably don’t know is that in real life I’m doing backend web development for a living, while gamedev is only my dream job.

One of the services I’m in charge of is an internal service that was written in node+express in their early years (for various reasons that are off-topic here). As it is private it is running on a single server and doesn’t get a lot of traffic. Over time, because of…

The Rust programming language guarantees that your program will never have any undefined behavior as long as you use safe code. This works as long as you use the standard library, but when it comes to C APIs this safety guarantee lays on the shoulders of library writers. Anyone who exposes a safe interface over an unsafe API must be extra-cautious that nothing bad happens.

In addition to safety, the Rust standard library tries to enforce good practices as much as possible, such as avoiding hidden costs, explicitly handling every possible corner case with Results and Options, or creating simple-to-use…

hlua is a Rust wrapper for the Lua programming language which aims to provide a safe interface with this language with minimal overhead. I have a spent a lot of time figuring out how to do that, so I have decided to write about some parts of its design.

Introduction to the Lua stack

Lua is a programming language, and one of its goals is to be easy to embed in another language. Executing some code is as easy as creating a new Lua environment with luaL_newstate and calling luaL_do_string. …

tomaka

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store