Andrew Burkhart's Avatar

Andrew Burkhart

@andrewburkhart.bsky.social

Senior Rust Developer, 1Password

706 Followers  |  47 Following  |  12 Posts  |  Joined: 05.07.2023  |  1.6091

Latest posts by andrewburkhart.bsky.social on Bluesky

Preview
1Password with Andrew Burkhart Podcast Episode Β· Rust in Production Β· 06/26/2025 Β· 1h 4m

I had the pleasure of being a guest on the Rust In Production podcast recently. Got to talk all things Rust and 1Password.

podcasts.apple.com/us/podcast/r...

26.06.2025 16:20 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

Published my first Rust crate today. Introducing priact.

crates.io/crates/priact

priact implements the actor pattern (based on the Swift implementation) in Rust and adds a priority queue for your actors methods to respect the urgency you need for them.

18.06.2025 18:34 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Workspace featuring various Raspberry Pi boards, including a Raspberry Pi Pico on a breadboard, two Pico W boards, and a Raspberry Pi Debug Probe in its case. A Pimoroni Badger 2040 W e-ink display shows developer information and Wi-Fi details in the background. Electronics components are neatly arranged on a wooden desk, with cables and packaging nearby.

Workspace featuring various Raspberry Pi boards, including a Raspberry Pi Pico on a breadboard, two Pico W boards, and a Raspberry Pi Debug Probe in its case. A Pimoroni Badger 2040 W e-ink display shows developer information and Wi-Fi details in the background. Electronics components are neatly arranged on a wooden desk, with cables and packaging nearby.

Welcome to my mega 🧡 on getting started with Rust on the RP2040! This thread aims to get you started with writing Rust on the Raspberry Pi Pico. The actual end result will just be a blinking on-board LED. It’s up to YOU to take this foundation and make awesome projects from it.

24.11.2024 23:59 β€” πŸ‘ 200    πŸ” 39    πŸ’¬ 17    πŸ“Œ 13
Preview
GitHub - 1Password/zeroizing-alloc: A minimal secure heap zero-on-free implementation for Rust A minimal secure heap zero-on-free implementation for Rust - 1Password/zeroizing-alloc

Freshly open-sourced, the β€œZeroizer” we discussed @wesbos.com @tolin.ski

github.com/1Password/ze...

22.11.2024 22:18 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

The domains is how they really got us (sincerely a guy who hasn’t made a proper one)

18.11.2024 16:42 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
1Password, Adobe, Woven by Toyota: Gold Sponsor Lightning Talks | RustConf 2024
YouTube video by Rust Foundation 1Password, Adobe, Woven by Toyota: Gold Sponsor Lightning Talks | RustConf 2024

We have a Rust Study Group at 1Password that’s helped hundreds of learners from all different backgrounds (CS, customer service, sales, etc.) learn Rust from scratch.

I had the honor of presenting some of our learnings from this group at RustConf in Montreal this year.

youtu.be/EY2KT0QZnkg?...

18.11.2024 16:41 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

If you convert the above code to this code, the app will panic. When we hit the expect() line, nothing from the async fn start_invocation_loop() has run yet.

06.11.2024 18:56 β€” πŸ‘ 1    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
Post image

Rust Tip: async fn is entirely lazy.

I posted this code the other day showing how you can do some sync setup before an asynchronous block to initialize things needed by the future.

Many times, any fn() -> impl Future can be replaced by an async fn. Not true here.

Explanation in 🧡

06.11.2024 18:54 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

Actually this should've been like this. Oops

06.11.2024 18:52 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Sounds like you should just switch to Rust 😏

03.11.2024 00:55 β€” πŸ‘ 6    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

The future that is being polled by block_on() is the future that is returned by start_invocation_loop(). That future is everything inside the async move {} block. The code in that block only executes when polled.

However everything above that happens synchronously before even the .get() call.

02.11.2024 19:51 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

Rust Tip: Rust futures are lazy but you can perform synchronous setup before they're polled.

For example, the code in this image might seem like it should panic at first glance because expect() is called before start_invocation_loop() initializes the OnceCell but it doesn't.

Explanation in 🧡

02.11.2024 19:48 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

My guess is bsky.app/profile/synt.... I just went looking for the same reason 🀣

02.11.2024 17:28 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

@andrewburkhart is following 20 prominent accounts