Schemars in Rust: Beyond Basic Structs
Introduction Hello and welcome to this tutorial on Schemars in Rust! Today we’re going to explore a powerful tool in Rust’s ecosystem that helps you define, validate, and document your data structures: the Schemars library. If you’ve worked with Rust before, you’re probably familiar with structs and their type system. But what if you need […]
as_ref and Cow
Despite serving different roles, as_ref and Cow share a common goal: enabling flexibility in how data is handled, especially with respect to ownership and borrowing. Both allow your code to work with a broader range of types—as_ref by accepting inputs that can be referenced as a common type, and Cow by returning data that may […]
GitHub Workflows – Rust
So this first version, (helped by Claude) persistently did the build but failed to do the release….. Then, after some more experimentation: This complete workflow solution: Key changes I made: This approach eliminates the need to manually create tags. Now every push to your main branch will automatically create a new release with all your […]
Tokio Async in Rust: tokio::join! vs tokio::spawn()
Rust’s Tokio async runtime provides two common ways to execute multiple async tasks concurrently: tokio::join! and tokio::spawn(). Choosing the right one is crucial for efficiency and proper task management. In this article, we’ll break down their differences, advantages, and when to use each with examples. Later on in the article well use JoinSet Understanding tokio::join! […]
Understanding await in Rust Async
Challenge: Race Condition & Mutex Fix 🏎️🔒 You’re building an async counter where multiple tasks try to update a shared number at the same time. But there’s a problem: Rust doesn’t allow shared mutable access without safety measures. Your Mission: Hints: When you use await, it pauses the task, not the thread. Here’s the distinction: […]
Creating a WebSocket Chat Room with Rust and Warp
Let me break down the process of creating this chat application into three phases, explaining the shared state aspect and unique challenges compared to typical Arc/Mutex tutorials. Phase 1: Setting Up the Basic Structure In Plain English: First, you’ll need to establish the foundational structure of your application. This means creating the basic server that […]
Working with as_str() and as_bytes()
Writing Data to a File When working with Rust, interacting with external APIs like OpenAI’s ChatGPT or writing data to files is common. In this article, we’ll address a couple of important questions regarding writing a Python script generated from the ChatGPT API to a file and converting data between types in Rust. Specifically, we’ll […]