9 July 2026
Topiary: Formatting Forests
How Topiary can now format embedded languages in OCamllex and Markdown files, and how the injection system works under the hood.
9 July 2026
How Topiary can now format embedded languages in OCamllex and Markdown files, and how the injection system works under the hood.
27 November 2025
What goes into a static library, and how to make it smaller
31 July 2025
A whirlwind tour on how to integrate Nix with Buck2
10 July 2025
A new multi-crate packaging feature for Cargo
10 April 2025
This post introduces recursion schemes, a functional programming technique used to neatly express recursive algorithms and transformations on trees, and what they are good for in Rust specifically.
22 August 2024
A summary of the open-source work done by the Programming Languages & Compilers team at Tweag in the second quarter of 2024.
25 April 2024
We re-implemented the nix remote protocol, declaratively
5 October 2023
Topiary's journey to a modern, user-friendly CLI experience.
10 August 2023
How to link against mimalloc when creating a static Linux executable for Rust, and why you should do the same.
27 July 2023
Setting up a Bazel build for the ripgrep codebase
29 June 2023
Now that Topiary is out and supports OCaml, we need to package it. But how exactly does one package a Rust projet in OPAM, the OCaml Package Manager?
9 March 2023
We're happy to announce the first release of Topiary, a formatter for many languages that leverages Tree-sitter.
24 January 2023
The Nix `with` keyword is challenging, but we transpiled it to Nickel anyway.
24 November 2022
How and why to share threads in WASM workers (and when not to)
22 September 2022
Learn the options for building a Nix flake out of a Rust workspace, outputting a mix of native code and WebAssembly.
3 March 2022