Robert Blomqvist
banner
robban.eu
Robert Blomqvist
@robban.eu
Rustacean 🦀 Father of daughters. SOFA 🛋 member. Game dev, machine learning and home automation enthusiast.
tokio_tungstenite even
August 10, 2025 at 6:33 PM
No, I use the tungstenite crate. Reusing a lot of what the CBOR implementation used (connection logic, server drops/timeouts, etc)

Thanks for the tip though!
August 10, 2025 at 6:29 PM
Mostly done:

👍 Replaced CBOR Firehose with JSON Jetstream (drastically reduced event stream)
👍 Replaced Diesel with SQLx (async and remove OS client libs)
👍 Message parser down to ~12% of a single Hetzner VCPU
👎 Websocket connection to Jetstream slower, but multiple servers available for redundancy
August 10, 2025 at 2:42 PM
This is now implemented, future posts from @rust-lang.org should now appear in the rustlang feed
August 7, 2025 at 9:36 PM
Good idea. My current implementation looks at message content only (keywords with weights), but I can probably add a list of usernames to the filtering as well. I will look into it tonight!
August 7, 2025 at 12:08 PM
Perhaps a good candidate for a macro, future_vec!(...)
February 20, 2025 at 8:12 PM
Well written Chris, you can really tell a lot of thought and work went into this! Smart move to abstract away the tokio specifics, both for future maintenance and clearer examples.

I just don't like the pin-box-future vec thing, I understand why it's needed and all, but... 🥴
February 20, 2025 at 8:11 PM
Astro is awesome
January 26, 2025 at 9:14 PM
I feel this needs a unicode/terminal/nerdfont symbol variant asap
January 24, 2025 at 9:29 PM
A feed can return a cursor along with the list of posts. The cursor tells the client more posts exist. How the cursor is handled is entirely up to the feed service though - it's just a string.
December 22, 2024 at 6:26 PM
It's a really nice alternative to git CLI, I like this overview video by @chriskrycho.com: www.youtube.com/watch?v=2otj...

@steveklabnik.com also has a nice tutorial/overview/guide: steveklabnik.github.io/jujutsu-tuto...

You can jump effortlessly between jj and git commands so it's easy to try out
What if version control was AWESOME?
YouTube video by Sympolymathesy by Chris Krycho
www.youtube.com
November 29, 2024 at 10:24 AM
Hi Jonas, no sorry. It's quite a messy project but others have asked for the source so I might clean it up and make it public. Yeah the feed parser (listening to and filtering out rust events) is Tokio based. The feed generator (serving the feed) is Actix so also Tokio behind the scenes.
November 22, 2024 at 10:01 PM
It actually only pulls in the reply with Rust in it. The bluesky client then shows you the larger context/thread.
November 19, 2024 at 9:42 PM
I think for that a simple search on the hashtag is easier. This feed is supposed to draw in stuff from Rust keywords and URLs, like crates.io as well. Sure it pulls in the odd rusty car post, but I don't mind. It's built by humans for humans. You should've seen it a year ago.
November 19, 2024 at 9:16 PM
Tre sista bokstäverna i förnamnet framlänges, tre första i efternamnet baklänges blir man lem
November 11, 2024 at 9:16 PM
The Rustlang feed does indeed identify specific keywords, save links to those posts in a database and provide a feed endpoint to list them.

The AT Protocol provides a "firehose" that you can subscribe to via WebSockets, it spits out everything that happens in the network in real time.
October 28, 2024 at 8:54 PM
That's cool, to each their own.

I started with Visual Studio bloated with various addons and quite recently moved towards more lightweight editors and IDEs. Day job requires me to be in Windows alot still (unfortunately) and Zed ain't there just yet.

I guess Helix makes you hurt even more then? 😜
October 27, 2024 at 3:01 PM
Zed is promising zed.dev
Zed - The editor for what's next
Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.
zed.dev
October 26, 2024 at 9:18 PM
It's quite easy to connect a websocket to the firehose URL and start deserializing messages, filtering out what you need. It does require a bit of work with the CBOR crates and types, at least the ones available at that time. Maybe it's easier now. (The header and message is combined/a union)
October 19, 2024 at 10:38 PM
I built the Rustlang feed here on Bluesky in Rust, the feed parser uses around 5-7MB RAM and is very easy on the CPU. Async message handling from firehose, no regex (only keywords). I have a separate service for generating and handling requests to the feed, an Actix service.
October 19, 2024 at 9:50 PM
(and sorry Rustlang feed viewers for this feed not updating yesterday)
September 30, 2024 at 9:39 PM