Blog

Notes from building api0 and our Rust tools: AI agents, MCP, Azure integration and Rust itself.

Read the articles in a suggested order. Requires signing in.

Showing 6 of 65 articles • Page 10 of 11

🤖 AI agents & integration
aiOctober 3, 2026

AI in Companies Isn't 50 Use Cases. It's 3 Things.

Most generative and agentic AI projects fit into three categories: agents for customers, integration layers for systems, and copilots for employees. Here is why that lens beats a list of fifty use cases.

azureSeptember 5, 2026

Your Logic Apps Are a Graph, and the Azure Portal Only Shows You a List

Past a dozen workflows, an Azure Logic Apps estate stops being a list and becomes a graph connected by Service Bus queues and Event Grid topics. Here is why the portal cannot show you that graph, and what to do about it.

azureSeptember 5, 2026

How Far Did That Order Get? Tracing a Correlation ID Across Cosmos DB

A customer says their order never arrived. You have a correlation id and an Azure Cosmos DB account with more containers than anyone remembers. Here is why the empty results matter more than the full ones.

Connecting Claude to your own APIs? The api0 blog covers the gateway, OAuth and MCP setup in detail.Read the api0 blog →
📌 Why Rust?
rustApril 10, 2025

GC Pauses and Latency: The Hidden Cost of High-Level Languages

Java, Python, and JavaScript offer convenience, but garbage collection introduces unpredictable latency. Explore how runtime memory management affects performance in real systems.

rustApril 11, 2025

C Gives You Control, But at What Cost?

C avoids garbage collection and gives manual memory control, but opens the door to dangerous bugs. Explore real-world memory issues and why they matter.

rustApril 12, 2025

Rust: Memory Safety Without Garbage Collection

Rust gives you the performance of C with memory safety enforced at compile time. Learn how ownership and borrowing eliminate entire bug classes.

🗓 Latest articles
rustJuly 9, 2025

impl Fn() vs. Box<dyn Fn()>: Rust's Closure Dispatch Showdown

Comparing static and dynamic dispatch for closures in Rust, focusing on performance and use cases

rustJuly 8, 2025

What are move closures (move || { ... })? When are they necessary, and how do they interact with ownership?

What move actually moves, when you genuinely need it (threads, returned closures, async blocks), and how it interacts with ownership.

rustJuly 8, 2025

How do into_iter(), iter(), and iter_mut() differ?

into_iter(), iter() and iter_mut() differ in what they hand you: the value, a shared reference, or an exclusive one.

rustJuly 7, 2025

What are the differences between Fn, FnMut, and FnOnce?

Fn, FnMut and FnOnce aren't traits you pick — the compiler derives them from how the closure uses what it captured.

rustJuly 7, 2025

How do you specify a closure as a function parameter or return type?

Taking and returning closures: when impl Fn is enough, when you need Box<dyn Fn>, and what each choice costs at the call site.

rustJuly 4, 2025

Rust Traits vs. Java/C# Interfaces: Shared Behavior Done Right

Discussion on Rust traits vs Java/C# interfaces, covering dispatch mechanisms, compile-time behavior, and performance optimizations.