<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Rust on Hi, I&#39;m Muhammad Amal</title>
    <link>https://muhammadamal.my.id/tags/rust/</link>
    <description>Recent content in Rust on Hi, I&#39;m Muhammad Amal</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 10 Feb 2025 09:00:00 +0700</lastBuildDate>
    <atom:link href="https://muhammadamal.my.id/tags/rust/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Embedding wasmtime in a Rust Host, A Hands On Guide</title>
      <link>https://muhammadamal.my.id/blog/embedding-wasmtime-in-a-rust-host-hands-on-guide/</link>
      <pubDate>Mon, 10 Feb 2025 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/embedding-wasmtime-in-a-rust-host-hands-on-guide/</guid>
      <description>A practical embedding tutorial for wasmtime 28, with resource limits, fuel-based metering, async, and clean shutdown patterns.</description>
    </item>
    <item>
      <title>Compiling Rust to Wasm with cargo component, A Step by Step Tutorial</title>
      <link>https://muhammadamal.my.id/blog/compiling-rust-to-wasm-with-cargo-component-step-by-step-tutorial/</link>
      <pubDate>Wed, 05 Feb 2025 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/compiling-rust-to-wasm-with-cargo-component-step-by-step-tutorial/</guid>
      <description>Build a real WASI 0.2 component from scratch with cargo-component 0.18, WIT bindings, and a wasmtime host that calls it.</description>
    </item>
    <item>
      <title>Lessons From a Year of Rust, Postgres, and AI Agents</title>
      <link>https://muhammadamal.my.id/blog/lessons-from-year-rust-postgres-ai-agents/</link>
      <pubDate>Fri, 20 Dec 2024 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/lessons-from-year-rust-postgres-ai-agents/</guid>
      <description>The combination that defined my 2024. What I learned about each, what I learned about their intersection, and what I would do differently.</description>
    </item>
    <item>
      <title>Shipping Rust to Kubernetes, Smaller Images and Faster Cold Starts</title>
      <link>https://muhammadamal.my.id/blog/shipping-rust-kubernetes-distroless-docker-2024/</link>
      <pubDate>Wed, 27 Mar 2024 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/shipping-rust-kubernetes-distroless-docker-2024/</guid>
      <description>Production guide to shipping Rust to Kubernetes with multi-stage Docker, distroless images, and cross-compilation.</description>
    </item>
    <item>
      <title>Rust Service Observability in 2024, Metrics, Logs, and Traces That Help</title>
      <link>https://muhammadamal.my.id/blog/rust-service-observability-metrics-logs-traces-2024/</link>
      <pubDate>Mon, 25 Mar 2024 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/rust-service-observability-metrics-logs-traces-2024/</guid>
      <description>Production observability for Rust services with the metrics crate, Prometheus, tracing, and OpenTelemetry.</description>
    </item>
    <item>
      <title>Safe Shared State in Rust, Arc, Mutex, and the Channel You Should Pick</title>
      <link>https://muhammadamal.my.id/blog/rust-shared-state-arc-mutex-channels-2024/</link>
      <pubDate>Wed, 20 Mar 2024 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/rust-shared-state-arc-mutex-channels-2024/</guid>
      <description>Practical guide to Arc, Mutex, RwLock, and channel choices for safe shared state in async and threaded Rust.</description>
    </item>
    <item>
      <title>Rust to WebAssembly at the Edge, Wasmtime and WASI in 2024</title>
      <link>https://muhammadamal.my.id/blog/rust-webassembly-edge-wasmtime-wasi-2024/</link>
      <pubDate>Mon, 18 Mar 2024 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/rust-webassembly-edge-wasmtime-wasi-2024/</guid>
      <description>Compile Rust to WebAssembly for edge runtimes with wasmtime 18, WASI Preview 2, and the component model.</description>
    </item>
    <item>
      <title>Embedded Rust in 2024, Embassy and the no_std Stack</title>
      <link>https://muhammadamal.my.id/blog/embedded-rust-embassy-no-std-2024/</link>
      <pubDate>Wed, 13 Mar 2024 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/embedded-rust-embassy-no-std-2024/</guid>
      <description>Practical guide to embedded Rust in 2024 with embassy 0.5, no_std, and async on Cortex-M and ESP32 hardware.</description>
    </item>
    <item>
      <title>Building an HTTP Service with Axum 0.7, From Zero to Tracing</title>
      <link>https://muhammadamal.my.id/blog/axum-http-service-tracing-2024/</link>
      <pubDate>Mon, 11 Mar 2024 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/axum-http-service-tracing-2024/</guid>
      <description>Axum 0.7 end-to-end. Extractors, error types, middleware layers, OpenTelemetry tracing. The setup that pays off by week two.</description>
    </item>
    <item>
      <title>Async Rust Without the Footguns, Tokio Patterns in 2024</title>
      <link>https://muhammadamal.my.id/blog/async-rust-tokio-patterns-2024/</link>
      <pubDate>Wed, 06 Mar 2024 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/async-rust-tokio-patterns-2024/</guid>
      <description>Async Tokio patterns that survive prod. Cancellation, JoinSet, select, bounded channels. The footguns and how to dodge them.</description>
    </item>
    <item>
      <title>Rust in Production, Where the 2024 Stack Has Matured</title>
      <link>https://muhammadamal.my.id/blog/rust-production-2024-stack/</link>
      <pubDate>Mon, 04 Mar 2024 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/rust-production-2024-stack/</guid>
      <description>Rust in production 2024 — what&amp;rsquo;s mature, what still bites. Async runtimes, frameworks, observability, deploy. Honest survey for backend devs.</description>
    </item>
    <item>
      <title>Rustls vs OpenSSL for Backend TLS in 2023</title>
      <link>https://muhammadamal.my.id/blog/rustls-vs-openssl-backend-tls/</link>
      <pubDate>Fri, 28 Jul 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/rustls-vs-openssl-backend-tls/</guid>
      <description>When to pick rustls and when to stay with OpenSSL for Rust backend TLS — performance, deployment, and compliance trade-offs from production experience.</description>
    </item>
    <item>
      <title>Production HTTP APIs with axum 0.6</title>
      <link>https://muhammadamal.my.id/blog/axum-0-6-production-apis/</link>
      <pubDate>Tue, 25 Jul 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/axum-0-6-production-apis/</guid>
      <description>A production-shaped axum 0.6 service — state, extractors, middleware, tracing, and the patterns that survive load testing.</description>
    </item>
    <item>
      <title>Error Handling in Rust, thiserror, anyhow, and the Patterns That Scale</title>
      <link>https://muhammadamal.my.id/blog/error-handling-thiserror-anyhow/</link>
      <pubDate>Fri, 21 Jul 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/error-handling-thiserror-anyhow/</guid>
      <description>Rust error handling that holds up in production: thiserror for libraries, anyhow for applications, and the context patterns in between.</description>
    </item>
    <item>
      <title>Building Secure CLIs in Rust with clap 4</title>
      <link>https://muhammadamal.my.id/blog/building-secure-clis-clap-4/</link>
      <pubDate>Tue, 18 Jul 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/building-secure-clis-clap-4/</guid>
      <description>Design patterns for secure CLI tools in Rust using clap 4: secret handling, input validation, static binaries, and predictable exit codes.</description>
    </item>
    <item>
      <title>Async Rust with tokio 1.29, A Production Mental Model</title>
      <link>https://muhammadamal.my.id/blog/async-rust-tokio-1-29/</link>
      <pubDate>Fri, 14 Jul 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/async-rust-tokio-1-29/</guid>
      <description>A working model of async Rust on tokio 1.29 — futures, the runtime, cancellation, and the patterns that hold up in production.</description>
    </item>
    <item>
      <title>Memory Safety Without a Garbage Collector, What Rust Actually Guarantees</title>
      <link>https://muhammadamal.my.id/blog/memory-safety-without-gc/</link>
      <pubDate>Tue, 11 Jul 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/memory-safety-without-gc/</guid>
      <description>The real scope of Rust&amp;rsquo;s memory safety guarantees, the classes of bugs they eliminate, and the ones they don&amp;rsquo;t.</description>
    </item>
    <item>
      <title>Ownership and Borrowing in Practice, A Working Mental Model</title>
      <link>https://muhammadamal.my.id/blog/ownership-borrowing-in-practice/</link>
      <pubDate>Fri, 07 Jul 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/ownership-borrowing-in-practice/</guid>
      <description>A working mental model for Rust ownership and borrowing built from production backend code, not toy examples.</description>
    </item>
    <item>
      <title>Why Rust Is Growing Fast in Backend Engineering</title>
      <link>https://muhammadamal.my.id/blog/why-rust-growing-fast-backend/</link>
      <pubDate>Tue, 04 Jul 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/why-rust-growing-fast-backend/</guid>
      <description>Why Rust adoption is accelerating in backend teams in 2023, the real production wins, and the friction points nobody talks about.</description>
    </item>
    <item>
      <title>March Retro, What Rust Earned Its Keep For</title>
      <link>https://muhammadamal.my.id/blog/march-retro-rust-backend/</link>
      <pubDate>Wed, 30 Mar 2022 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/march-retro-rust-backend/</guid>
      <description>One month of backend Rust. What stuck, what bounced, where it fits, what to warn the next person about.</description>
    </item>
    <item>
      <title>Rust vs Go for Backend APIs, When Each One Wins</title>
      <link>https://muhammadamal.my.id/blog/rust-vs-go-backend-api/</link>
      <pubDate>Mon, 28 Mar 2022 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/rust-vs-go-backend-api/</guid>
      <description>Rust vs Go for backend APIs in 2022. Compile times, perf, ergonomics, ecosystem, hiring. Honest after shipping both.</description>
    </item>
    <item>
      <title>Containerizing a Rust Service, A Sub-25MB Production Image</title>
      <link>https://muhammadamal.my.id/blog/rust-docker-image-small-distroless/</link>
      <pubDate>Fri, 25 Mar 2022 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/rust-docker-image-small-distroless/</guid>
      <description>Sub-25 MB Rust image. cargo-chef, musl static linking, distroless, BuildKit cache. Full Dockerfile + CI.</description>
    </item>
    <item>
      <title>Structured Logging in Rust with tracing</title>
      <link>https://muhammadamal.my.id/blog/rust-structured-logging-tracing/</link>
      <pubDate>Wed, 23 Mar 2022 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/rust-structured-logging-tracing/</guid>
      <description>Rust structured logging with tracing. Spans, events, request context, JSON output, production patterns.</description>
    </item>
    <item>
      <title>Serde JSON Patterns, Tagged Enums and the Tricks That Save Time</title>
      <link>https://muhammadamal.my.id/blog/rust-serde-json-patterns/</link>
      <pubDate>Mon, 21 Mar 2022 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/rust-serde-json-patterns/</guid>
      <description>Practical serde JSON patterns. Tagged enums, rename_all, flatten, custom serializers — handle real APIs cleanly.</description>
    </item>
    <item>
      <title>Postgres in Rust with sqlx, A Practical Setup</title>
      <link>https://muhammadamal.my.id/blog/rust-sqlx-postgres/</link>
      <pubDate>Fri, 18 Mar 2022 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/rust-sqlx-postgres/</guid>
      <description>Postgres in Rust with sqlx 0.5. Compile-time SQL checking, query macros, migrations, transactions, gotchas.</description>
    </item>
    <item>
      <title>Building a JSON API in Rust with Axum 0.4</title>
      <link>https://muhammadamal.my.id/blog/rust-json-api-axum/</link>
      <pubDate>Wed, 16 Mar 2022 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/rust-json-api-axum/</guid>
      <description>JSON API in Rust with Axum 0.4. Router, extractors, state, error handling, tower middleware. Minimal real backend.</description>
    </item>
    <item>
      <title>Async Rust with Tokio in 2022</title>
      <link>https://muhammadamal.my.id/blog/async-rust-tokio-2022/</link>
      <pubDate>Mon, 14 Mar 2022 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/async-rust-tokio-2022/</guid>
      <description>Async Rust with Tokio. What async/await compiles to, picking a runtime, tasks vs threads, maintainable async patterns.</description>
    </item>
    <item>
      <title>Cargo Workspaces for Backend Services</title>
      <link>https://muhammadamal.my.id/blog/cargo-workspaces-backend-services/</link>
      <pubDate>Fri, 11 Mar 2022 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/cargo-workspaces-backend-services/</guid>
      <description>Cargo workspaces for Rust backends. Layout, shared crates, per-binary builds, compile-time wins.</description>
    </item>
    <item>
      <title>Rust Error Handling, Result, ?, thiserror, anyhow</title>
      <link>https://muhammadamal.my.id/blog/rust-error-handling-result-thiserror/</link>
      <pubDate>Wed, 09 Mar 2022 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/rust-error-handling-result-thiserror/</guid>
      <description>Rust error handling. Result, ?, thiserror for libs, anyhow for apps. Patterns that replace try/catch.</description>
    </item>
    <item>
      <title>Rust Lifetimes Without the Fear</title>
      <link>https://muhammadamal.my.id/blog/rust-lifetimes-without-fear/</link>
      <pubDate>Mon, 07 Mar 2022 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/rust-lifetimes-without-fear/</guid>
      <description>Rust lifetimes demystified. Why they exist, what &amp;lsquo;a means, elision, and the three patterns that cover 95% of code.</description>
    </item>
    <item>
      <title>Rust Ownership and Borrowing for People Who Already Know Pointers</title>
      <link>https://muhammadamal.my.id/blog/rust-ownership-borrowing-for-go-devs/</link>
      <pubDate>Fri, 04 Mar 2022 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/rust-ownership-borrowing-for-go-devs/</guid>
      <description>Rust ownership for people who know pointers. Move semantics, &amp;amp;T vs &amp;amp;mut T, three rules, patterns that click.</description>
    </item>
    <item>
      <title>Why I&#39;m Learning Rust in 2022 (as a Go Developer)</title>
      <link>https://muhammadamal.my.id/blog/why-learn-rust-in-2022/</link>
      <pubDate>Wed, 02 Mar 2022 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/why-learn-rust-in-2022/</guid>
      <description>A Go dev picks up Rust in 2022. Where it wins, where it doesn&amp;rsquo;t, and what the first month feels like.</description>
    </item>
  </channel>
</rss>
