Merde is not Serde
*Another take on (de)serialization in Rust* In a rare direct follow-up episode, Amos shares an even differenter take on Serde, this time focusing on the kind of needs a server would have when handling data. Spoiler: Yes, merde means poop in French. Visit https://sdr-podcast.com/episodes/merde-is-not-serde/ to see the show notes and transcript! Sponsor: CodeCrafters is a service for learning programming skills by doing. Visit our referral link at https://app.codecrafters.io/join?via=sdr-pod to start your free trial. If you upgrade, you'll get a discount and a portion of the sale will support this podcast. [00:00:00] Intro [00:01:51] Merde is not serde [00:03:47] Built-in value type [00:08:11] CoW all the things [00:10:32] No proc macros [00:17:01] Built-in IntoStatic trait [00:20:20] Deserialize trait [00:23:03] DeserOpinions trait [00:27:31] Serialize trait [00:28:43] Stack Full? Get Another! [00:37:48] Drop bombs, async I/O, dynosaur # Shownotes - dtolnay response to James' postcard-forth https://bsky.app/profile/dtolnay.bsky.social/post/3lby6hlugt22q - Vladimir Lenin quote https://www.goodreads.com/quotes/342783-there-are-decades-where-nothing-happens-and-there-are-weeks “There are decades where nothing happens; and there are weeks where decades happen.” - merde crate https://crates.io/crates/merde - Misia's art website https://misiasart.com/ - denial-of-service attack DoS attack https://en.wikipedia.org/wiki/Denial-of-service_attack - postcard-dyn https://crates.io/crates/postcard-dyn/ - BTreeMap https://doc.rust-lang.org/stable/std/collections/index.html#use-a-btreemap-when - std::collections https://doc.rust-lang.org/stable/std/collections/index.html - includes an overview of types like `HashMap` and `BTreeMap` - cargo-dist https://crates.io/crates/cargo-dist/ - `Cow` type https://doc.rust-lang.org/stable/std/borrow/enum.Cow.html Copy On Write in the standard library - compact_str https://crates.io/crates/compact_str/ and compact_bytes https://crates.io/crates/compact_bytes - Amos' review of small string crates https://fasterthanli.me/articles/small-strings-in-rust or - APIs: Reddit https://www.reddit.com/dev/api/, Patreon https://docs.patreon.com/#introduction, GitHub Sponsors https://docs.github.com/en/sponsors/integrating-with-github-sponsors/getting-started-with-the-sponsors-graphql-api - Diesel https://diesel.rs/ - a database library for Rust - Domain-specific language DSL https://en.wikipedia.org/wiki/Domain-specific_language - "Don't repeat yourself" DRY https://en.wikipedia.org/wiki/Don%27t_repeat_yourself - `protoc` https://grpc.io/docs/protoc-installation/, the Protobuf Compiler - schemars https://docs.rs/schemars/latest/schemars/ - Amos' question https://bsky.app/profile/fasterthanli.me/post/3l45hoozcsh2f - "hey is this even possible in Rust" people respond "WHY..." - Manish's blog series: Not a Yoking Matter https://manishearth.github.io/blog/2022/08/03/zero-copy-1-not-a-yoking-matter/, Zero-Copy All the Things! https://manishearth.github.io/blog/2022/08/03/zero-copy-2-zero-copy-all-the-things/, So Zero It's... Negative https://manishearth.github.io/blog/2022/08/03/zero-copy-3-so-zero-its-dot-dot-dot-negative/ - merde issue "Explore yoke support" https://github.com/bearcove/merde/issues/52 - rubicon https://crates.io/crates/rubicon - tokio bytes https://github.com/tokio-rs/bytes - DeserOpinions https://docs.rs/merde/latest/merde/trait.DeserOpinions.html - `type_id` https://doc.rust-lang.org/stable/std/intrinsics/fn.type_id.html in the standard library - Rust 1.75 `async fn` trait announcement https://blog.rust-lang.org/2023/12/21/async-fn-rpit-in-traits.html - stacker crate https://crates.io/crates/stacker - YAML referential support https://en.wikipedia.org/wiki/YAML#Advanced_components - "Pin and friends" https://doc.rust-lang.org/std/pin/ - dynosaur https://lib.rs/crates/dynosaur - Dining philosophers problem https://en.wikipedia.org/wiki/Dining_philosophers_problem - async-trait crate https://crates.io/crates/async-trait - Rust 1.80.3 https://blog.rust-lang.org/2024/11/28/Rust-1.83.0.html - Didn't make it to the episode, but an honorable mention for code generation inspiration: toasty https://tokio.rs/blog/2024-10-23-announcing-toasty, an async ORM for Rust
Download
0 formatsNo download links available.