Jan 21, 2025 We will rewrite SQLite. And we are going all-in Two years ago, we made a bet: SQLite, the most successful database in history, could be even better. Not just marginally better – fundamentally better. We believed that the missing piece wasn't technical, but human: SQLite needed an open contribution model that would give developers everywhere a seat at the table. This vision led us to f
This article is a linear retrospective of how we searched for and eventually fixed a hard-to-find bug in our embedded software. If you're only interested in the outcome, then make sure to read the last three sections. Sit back and grab a drink. This one is a doozy. BackgroundAt Tweede golf we do lots of engineering work, and a while ago we worked for a client using the nRF9160 microcontroller. Thi
Can you encode UTF-8 without branches? Yes. The question In a Recurse chat, Nathan Goldbaum asked: I know how to decode UTF-8 using bitmath and some LUTs (see https://github.com/skeeto/branchless-utf8), but if I want to to go from a codepoint to UTF-8, is there a way to do it without branches? To start with, is there a way to write this C function, which returns the number of bytes needed to store
We’re in the process of porting a significant portion of the network I/O code in EdgeDB from Python to Rust, and we’ve been learning a lot of very interesting lessons in the process. We’ve been working on a new HTTP fetch feature for EdgeDB, using reqwest as our HTTP client library. Everything was going smoothly: the feature worked locally, passed tests on x86_64 CI runners, and seemed stable. But
The gen auto-trait problem — 2025-01-13 leaking auto-traits from gen bodies preventing the leakage what about other effects and auto-traits? conclusion One of the open questions surrounding the unstable gen {} feature is whether it should return Iterator or IntoIterator. People have had a feeling there might be good reasons for it to return IntoIterator, but couldn't necessarily articulate why. Wh
Hexagonal Architecture. You've heard the buzzwords. You've wondered, "why hexagons?". You think domain-driven design is involved, somehow. Your company probably says they're using it, but you suspect they're doing it wrong. Let me clear things up for you. By the end of this guide, you'll have everything you need to write ironclad Rust applications using hexagonal architecture. I will get you writi
Reflection is something a lot of people wish the Rust language had: It is not hard to stumble across somebody with an interesting use case for it. People want to use it for serialization, GCs, better interop, and so, so much more. If you can think of a task, there is somebody out there wishing they could implement it using reflection. Sadly, it does not look like it is coming any time soon. Still,
Embedding Scheme in Rust Rust, as a compiled language, makes it challenging to modify the behavior of programs dynamically. In this article, we embed a small Scheme interpreter called Stak Scheme in Rust to dynamically change the behavior of a program without stopping the process. You can find the following codes in this article at the examples/hot-reload directory in the Stak Scheme repository. T
I’ve been using Rust for hobby projects since 2016 and have been working professionally in Rust since 2021, so I tend to consider myself pretty knowledgeable about Rust. I’m already familiar with all the common limitations of Rust’s type system and how to work around them, so it’s pretty rare that I have to “fight the borrow checker” as new Rust users often struggle with. However, it does still ha
Announcement Welcome to Context-Generic Programming! If you are new here, please read the announcement blog post about the launch of the project. Introduction Context-generic programming (CGP) is a new programming paradigm for Rust that allows strongly-typed components to be implemented and composed in a modular, generic, and type-safe way. In this section, we will walk through some of the advanta
About two years ago, our head maintainer @ridiculousfish opened what quickly became our most-read pull request: #9512 - Rewrite it in Rust Truth be told, we did not quite expect that to be as popular as it was. It was written as a bit of an in-joke for the fish developers first, and not really as a press release to be shared far and wide. We didn’t post it anywhere, but other people did, and we go
In this short post we look at how to debug a recent build breakage we encountered due to a feature being enabled on one of our dependencies that is not compatible with our build target: wasm. What happened After porting our bevy based game tinytakeoff to the newest Bevy release: 0.15 our build broke with the following error on wasm: cargo:warning=In file included from vendor/basis_universal/encode
December 12, 2024 Reddit IRLOIn languages like Python, Java, or C++, values are hashed by calling a “hash me” method on them, implemented by the type author. This fixed-hash size is then immediately used by the hash table or what have you. This design suffers from some obvious problems, like: How do you hash an integer? If you use a no-op hasher (booo), DoS attacks on hash tables are inevitable. I
by Matthew Plant Scheme to the Spec (in Async Rust) Scheme to the Spec is a series on the more complex, often overlooked aspects of programming language implementation. In this series we will dive deep into my work-in-progress implementation of R6RS scheme, scheme-rs, an implementation designed to integrate seamlessly with the async-rust ecosystem. Our first article discusses how to implement Garb
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く