Using no standard library crates with Webassembly
When working with Rust + Webassembly, you might want to use some crates in your project. Not all crates work out of the box with Webassembly yet, especially those that rely on System Libraries, File...
View ArticleUsing TLS and SNI with Rustls in Actix
In this tutorial I assume that you have already obtained a certificate from LetsEncrypt. If not, please start with that process first. Once you have obtained the certificate, we will need two files...
View ArticleIntroducing R2, a Router in Rust
R2 began from a desire to learn the internals of the HFSC scheduler by writing it from scratch. It started with our decision to use HFSC at a startup I was working at. We were having troubles with a...
View ArticleWiremock: async HTTP mocking to test Rust applications
I released wiremock, a new crate that provides HTTP mocking to test Rust applications. You can spin up as many mock HTTP servers as you need to mock all the 3rd party APIs that your application...
View ArticleFrom Rust to WebAssembly: building an interactive note-taking webapp with...
In this blog post, I want to introduce the personal note taking app that I wrote for myself. I want to highlight the use-case that I'm looking to solve, as well as the challenges that I ran into with...
View ArticleTeleforking a process onto a different computer!
One day a coworker mentioned that he was thinking about APIs for distributed compute clusters and I jokingly responded “clearly the ideal API would be simply calling telefork() and your process wakes...
View Articlewgpu-rs on the web
gfx-rs is a Rust project aiming to make low-level GPU programming portable with low overhead. It’s a single Vulkan-like Rust API with multiple backends that implement it: Direct3D 12/11, Metal, Vulkan,...
View ArticleThe Phemex Exchange Part 1
They say imitation is the sincerest form of flattery. In that light, I was inspired by an ex-Morgan Stanley colleague - Kyle Downey - to start my own blog. This is my first post on that endeavor and I...
View ArticleThe Safety Boat: Kubernetes and Rust
Our team, DeisLabs, recently released a new piece of software called Krustlet, which is a tool for running WebAssembly modules on the popular, open-source container management tool called Kubernetes....
View ArticleDynamic Stylesheets and Yew
I recently discovered a really cool front-end framework written in Rust called Yew. I feel like it’s a spiritual cross between the functional language Elm and React.Currently, there is no agreed upon...
View ArticleWrite a Tokio 0.2 decoder for a TCP stream and push its events to Apache Kafka
What we'll be making: We'll be listening to a port. This port is streaming out some XML events. Only caveat is is that it is first padded (sometimes) with a 32bit number to tell you how much bytes are...
View ArticleBuilding a request inspector
I’ve been quite involved with distributed tracing and have spent a fair amount of time looking at the W3C recommendation for dealing with trace context at work lately. As a result of this, I have found...
View ArticleMulti-threaded HTTP/WebSocket server in Rust
Building up on my previous posts about MIO-based server and parser combinators, this post is about making a very simple HTTP server capable of running on multiple threads and implementing WebSocket...
View ArticleBuilding a Real-time Chat App in Rust and React
This article covers building a chat app in Rust using asynchronous code.
View ArticleThe most general reverse proxy
Deploying web applications is hard to do, and there are a bewildering variety of ways to do it. Today I’d like to confuse the matter further by proposing yet another approach. As a preview, here are...
View ArticleDatabase Migrations with a Rust Web Service
In this post we’ll take a look at how to do database migrations using the refinery library in the context of a web application.
View ArticleFour Years of Rust At OneSignal
OneSignal has been using Rust extensively in production since 2016, and a lot has changed in the last four years – both in the wider Rust ecosystem and at OneSignal.At OneSignal, we use Rust to write...
View ArticleBuild a Smart Bookmarking Tool with Rust and Rocket
One of my favorite tools that exists internally is our smart bookmarking tool commonly referred to as “bunnylol.” Originally named bunny1 and open sourced, it’s what we use to navigate across all...
View ArticleNLnet funding, and Lemmy v0.7.0 with new image hosting!
Lemmy is receiving funding from the NLnet foundation! The funding is for a total amount of 45.000 €, which will allow /u/dessalines and me (/u/nutomic ) to work on Lemmy full-time for at least half a...
View ArticleBastion floating on Tide - Part 2
This post is Part two of a series on how to build a highly fault tolerant system using bastion-rs, and expose an async web api with Tide. Part one is about setting up a simple Tide server, and covers...
View ArticleUsing RabbitMQ in Rust
In this post we will take a look at how to integrate a Rust web application using warp with RabbitMQ. For this purpose, we will use the lapin library together with deadpool for pooling connections. The...
View ArticleRust is Surprisingly Good as a Server Language
At some point, I got tired of my old static site generator setup for my blogs and other pages. It was annoying to ssh every time I wanted to make a modification, it was annoying to sftp or sshfs all my...
View ArticleWriting an asynchronous MQTT Broker in Rust - Part 2
In the last section, we went over the MQTT protocol and our proposed architecture. By the end of this tutorial, we’ll have a tiny little broker that will accept clients and play ping-pong, and we’ll...
View ArticleSite Update: Rewrite in Rust
Hello there! You are reading this post thanks to a lot of effort, research and consultation that has resulted in a complete from-scratch rewrite of this website in Rust. This website stands on the...
View ArticleUnder the hood of Linkerd's state-of-the-art Rust proxy, Linkerd2-proxy
Thanks in part to Linkerd's performance numbers and stellar security audit report, there's been a recent surge of interest in Linkerd2-proxy, the underlying proxy used by Linkerd. I've been working on...
View ArticleTutorial: Deno Apps with WebAssembly, Rust, and WASI
Deno is created by the original developer of Node.js, Ryan Dahl, to address what he called 10 things I regret about Node.js. It did away with the NPM and the infamous node_modules. Deno is a single...
View ArticleValerie: Rethinking Web Apps in Rust
I have personally tried and seen various front-end frameworks for Web Apps in Rust. To be honest, they are pretty good and do their job well. But they do have some drawbacks, like a steep curve for...
View ArticlePassing messages between AWS IoT and SQS queue using Lambdas written in Rust
AWS IoT Core provides a convenient way to connect your IoT devices like ESP32 to the cloud. Typically MQTT protocol is used for that.Let’s suppose everything is setup on AWS IoT side and you can see...
View ArticleApache thrift over unix sockets in Rust
Apache Thrift is an interface definition language and binary communication protocol use for defining and creating services for all the numerous supported languages. It forms an RPC framework avoiding...
View ArticleZero To Production #3: How To Bootstrap A Rust Web API From Scratch
We spent the whole Chapter 2 defining what we will be building (an email newsletter!), narrowing down a precise set of requirements. It is now time to roll up our sleeves and get started with it.This...
View ArticleGetting started with WebAssembly and Rust
I initially picked up Rust because of the fantastic work the team has done to support and push WebAssembly. The official documentation is a great resource for building an example project.This guide...
View ArticleBuilding a faster CouchDB View Server in Rust
A project I’ve been working on over the last few months is implementing the new CouchDB javascript view server in Rust and then benchmarking how it compared to the official Cloudant View Server.This is...
View ArticleIPv6 and Rust
At NLnet Labs, we chose Rust when starting two related projects for the routing security framework, RPKI: the certification authority Krill, and the relying party software, Routinator. Initially...
View ArticleMeili raises 1.5M€ for open source search in Rust
We recently raised 1,5M euros from LocalGlobe, Seedcamp, Kima & Tiny.vc. This funding will allow us to focus on building a community of early adopters & contributors around our open search...
View ArticleSingle Page Applications using Rust
WebAssembly (wasm) allows code written in languages other than JavaScript to run on browsers. If you haven’t been paying attention, all the major browsers support wasm and globally more than 90% of...
View ArticleAsync Unicorns love Rust
Before going on to write a backend for our weather station we first need to familiarize ourselves with a few concepts from the Rust world. If you are unfamiliar with the language take a few minutes to...
View ArticleWriting an asynchronous MQTT Broker in Rust - Part 3
When I began this project, many months ago, there were no good resources on Tokio. I procrastinated on writing this blog series, but my intention was for it to be a guide on using Tokio and...
View ArticleZero To Production #3.5: HTML forms, Databases, Integration tests
In the first part of Chapter 3 we covered a fair amount of ground - we set out to implement a /health_check endpoint and that gave us the opportunity to learn more about the fundamentals of our web...
View ArticleRust HTTP Testing with httpmock
HTTP mocking libraries allow you to simulate HTTP responses so you can easier test code that depends on third-party APIs. This article shows how you can use httpmock to do this in Rust.
View ArticleWhat I Learnt from Benchmarking Http4k, Ktor (Kotlin) and Actix v2, v3 (Rust)...
Back in spring 2020 at GoOut, we were looking to replace our Spring-Tomcat duo by a more lightweight framework to power our future Kotlin microservices. We did some detailed (at times philosophical)...
View ArticleAnnouncing Actix Web v3.0
We are pleased to announce the next major release for actix-web, v3.0! This is the safest, most stable version yet. We highly recommend everyone upgrade to v3 ASAP to benefit from these improvements....
View ArticleRust in curl with Hyper
tldr: work has started to make Hyper work as a backend in curl for HTTP.
View ArticleRewriting the Modern Web in Rust
> Building a modern web app with Rust, Bazel, Yew and Axum.Earlier this year I rewrote my website with Next.js, React, tsx, and mdx. Having tried full-stack rust in the past, I didn’t think its...
View Articlezerocal - A Serverless Calendar App in Rust Running on shuttle.rs
Like any reasonable person, I wanted a way to create calendar entries from my terminal.That's how I pitched the idea to my buddies last time. The answer was: "I don’t know, sounds like a solution in...
View ArticleA Memory Safe Implementation of the Network Time Protocol
For the last few months we at Tweede golf have been working on implementing a Network Time Protocol (NTP) client and server in rust.The project is a Prossimo initiative and is supported by their...
View ArticleSupporting the Use of Rust in the Chromium Project
We are pleased to announce that moving forward, the Chromium project is going to support the use of third-party Rust libraries from C++ in Chromium. To do so, we are now actively pursuing adding a...
View ArticleRunning Zola on WebAssembly
Even though Zola is written in Rust, it still relies on glibc, the GNU C Library. The update to v15 changed how the Zola binary for Linux was built, causing it to rely on newer versions of glibc. After...
View ArticleParsing TFTP in Rust
Several years ago I did a take-home interview which asked me to write a TFTP server in Go. The job wasn't the right fit for me, but I enjoyed the assignment. Lately, in my spare time, I've been...
View ArticleRust to WebAssembly the hard way
What follows is a brain dump of everything I know about compiling Rust to WebAssembly. Enjoy.Some time ago, I wrote a blog post on how to compile C to WebAssembly without Emscripten, i.e. without the...
View Article