Sign in

Ilya (Marshal)

@marshal.dev
4.9K followers 92 following 438 posts

Software Engineer 🐍 The AT Protocol SDK for Python: atproto.blue 🍿 Custom Feed in Python: github.com/MarshalX/bluesky-feed-ge… 🏎️ Fast IPLD library for Python: github.com/MarshalX/python-libipld marshal.dev

PostsRepliesMedia
Ilya (Marshal) @marshal.dev · 20/09/2026
iOS 27.2 beta changed how Cardio Fitness (VO2 max) levels are calculated It still depends on age and sex, like before, but the boundaries between levels now appear to move smoothly with age instead of jumping at fixed age brackets. Mine went up
140
Ilya (Marshal) @marshal.dev · 10/09/2026
AT Protocol SDK for Python v0.0.72 is out 🎉 🧩 Custom lexicon codegen: "atp gen custom" turns any lexicon dir into a typed package of models, namespaces, subscription clients, and a Client subclass. 📚 Fully reworked docs with a much better search: atproto.blue #atproto #python
atproto.blue
The AT Protocol SDK for Python
Autogenerated from lexicons, well type hinted, documented, sync and async. Where to start: Quickstart Install it, log in, send a post, read a timeline. Five minutes. Quickstart Guides Posting, read...
040
Ilya (Marshal) @marshal.dev · 18/08/2026
Shipped! Jetstream 🛩️ is in the Python SDK. Server-side filtering so you only get what you asked for, dict-zstd for ~65% less bandwidth, and full network replay: snapshot() and replay() sweep the archive and cut over to the live tail with no gap or duplicate. #atproto atproto.blue/en/latest/at...
atproto.blue
Jetstream (data streaming)
Jetstream is a streaming service for the AT Protocol network. Unlike the Firehose, it delivers records as plain JSON, filters server-side, and needs no CAR or DAG-CBOR decoding. Both clients are pr...
2164
Ilya (Marshal) @marshal.dev · 28/05/2026
The AT Protocol SDK for Python now supports @standard.site lexicons! 🐍 You can now read and write publication, document, and subscription records. The same long-form schemas powering @leaflet.pub, @pckt.blog, and @offprint.app. atproto.blue
atproto.blue
Documentation
The AT Protocol SDK documentation for Python
1162
Ilya (Marshal) @marshal.dev · 27/05/2026
Oops, now there is v3.4.1 with even more performance (up to +7%) and parity with other libraries #atproto
Deserialization v3.4.0 → v3.4.1
030
Ilya (Marshal) @marshal.dev · 26/05/2026
🚀 Python libipld v3.4.0 is out! Up to 30x faster DAG-CBOR decode than pure-Python library. Up to 2x faster than v3.3.2, with ~30% quicker CAR parsing for the Bluesky firehose! More details: github.com/MarshalX/pyt... #atproto #bluesky #python
Deserialization v3.3.2 → v3.4.0
1153
Ilya (Marshal) @marshal.dev · 01/12/2025
Bluesky custom feeds in Python are now ~x2 faster! ~25-35% faster DAG-CBOR decoding, and ~17% faster CID decoding! I do have more ideas on what to try to speed it up even further! For example, applying BOLT on top of the existing PGO. Huge kudos to @vmx.cx for making this happen!
github.com
Release v3.3.0 · MarshalX/python-libipld
🟢 The maintainer is looking for a job! CV: https://marshal.dev What's Changed ❗ Almost x2 speed for CAR decoding (Bluesky firehose), ~25-35% faster DAG-CBOR decoding, and ~17% faster CID decoding! ...
4568
Ilya (Marshal) @marshal.dev · 22/10/2025
Thanks to @makeworld.space, Fast IPLD lib for Python is shiny as never before! Many panics and out-of-specification bugs have been fixed. Amazing DASL Testing: hyphacoop.github.io/dasl-testing/
hyphacoop.github.io
DASL Testing
151
Ilya (Marshal) @marshal.dev · 22/10/2025
The atproto SDK for Python now supports Python 3.14! Please report any instability of firehose async client. There are too many dependency bumps for this release.
1141
Ilya (Marshal) @marshal.dev · 21/04/2025
@atproto.com are you gonna be our trusted verifier? 🙂 #atproto
040
Ilya (Marshal) @marshal.dev · 11/04/2025
🚀 Python atproto SDK v0.0.60 is here! Key additions: - Message reactions in DMs - Improved AtUri core class - ⁠Content-Type overriding - Digits in NSID - Email 2FA support - Enhanced HTTPX config and various fixes! Check it out! 🐍✨ #Python #atproto
github.com
Release v0.0.60 · MarshalX/atproto
What's Changed Add message reaction to the example of Direct Messages by @MarshalX in #595 Add UnknownUnionModel type by @MarshalX in #586 Add include_pins argument to get_author_feed method of Cl...
0181
Ilya (Marshal) @marshal.dev · 23/02/2025
Add sync firehose message support, the latest lexicon update, and more github.com/MarshalX/atp... #atproto
github.com
Release v0.0.59 · MarshalX/atproto
What's Changed Add support for the repository #sync message in the subscribe repos firehose by @MarshalX in #556 Add chat.* and tools.* models to the main menu of documentation by @MarshalX in #55...
0100
Ilya (Marshal) @marshal.dev · 25/01/2025
zero issues with making custom video feeds in Python
030
Reposted by Ilya (Marshal)
Jer @jeremie.com · 30/12/2024
Fun little winter break side project to help me explore more of atproto - I made a fun Bluesky - IRC bridge! github.com/quartzjer/AT... Built in python using @marshal.dev's awesome atproto module, definitely spent too much time fiddling with how to display rich/media posts in an IRC-friendly way 😅
0284
Ilya (Marshal) @marshal.dev · 06/12/2024
Thank you for your contribution! Test coverage, performance benchmarks, and more — that's very professional. I appreciate it!
050
Ilya (Marshal) @marshal.dev · 17/11/2024
The fix was merged! But it does not resolve the main problem. So to be continued here github.com/bluesky-soci...
github.com
Relay: consumers do not receive root block in case of too big seq commit · Issue #780 · bluesky-social/indigo
From bluesky-social/atproto#2893
051
Ilya (Marshal) @marshal.dev · 17/11/2024
Today's Python SDK incident with segfault comes from Firehose raises the priority of the proper bugfix 🫠 github.com/MarshalX/atp... tl;dr no recursion limit; malformed payloads in the network could lead to segfaults of python-libipld (rust binding)
github.com
Segmentation fault (core dumped) in CAR reading from Firehose · Issue #437 · MarshalX/atproto
i was consuming data from the firehouse, specifically at cursor: 3720770000, every time i get a consistent Core Dumped I managed to find the crash is coming from: .venv/lib/python3.12/site-packages...
261
Ilya (Marshal) @marshal.dev · 24/10/2024
Firehose consumers do not receive root block in case of too big seq commit. I dug into this because I got reports from Python SDK users that commit.blocks received from the firehose message frame could be missed. I am waiting for the review by #atproto team github.com/bluesky-soci... 🙃
github.com
Firehose consumers do not receive root block in case of too big seq commit · Issue #2893 · bluesky-social/atproto
Describe the bug Firehose consumers do not receive root block in case of too big seq commit. To Reproduce I wrote a corresponding unit test in the linked PR that reproduces the issue Actual behavio...
040
Ilya (Marshal) @marshal.dev · 21/10/2024
300 stars on GitHub github.com/MarshalX/atp... (atproto.blue) 🎉
GitHub MarshalX/atproto stars graph
1120
Ilya (Marshal) @marshal.dev · 24/09/2024
If the official instances are presented, I think it would be good for the Python SDK to adopt Jetstream as well. We do not struggle with CPU thanks to native bindings, but network bandwidth is crucial
170
Ilya (Marshal) @marshal.dev · 17/09/2024
Bluesky now has over 10 million users, and I was #17,636!
0100
Ilya (Marshal) @marshal.dev · 13/09/2024
This is how easy you can upload video to Bluesky using Python! Thanks to @meorge.com contribution which adds send_video method! #atdev
1142
Ilya (Marshal) @marshal.dev · 08/09/2024
⚡ I finally dropped a new batch of optimizations for the fast Python IPLD library. Now we can read atproto repositories and firehose commits 30% faster! My local benchmarks show 200 MB/sec. GitHub Release: github.com/MarshalX/pyt...
4194
Ilya (Marshal) @marshal.dev · 30/08/2024
Detach quote posts support and performance improvement for JSON parsing in github.com/MarshalX/atp...
github.com
Release v0.0.50 · MarshalX/atproto
What's Changed Use jiter instead of the built-in json module to improve performance by @MarshalX in #360 Update docs example to fix empty blocks of commit by @MarshalX in #363 Bump certifi from 20...
020
Ilya (Marshal) @marshal.dev · 04/07/2024
do not like 🤫 github.com/MarshalX/atp...
github.com
Release v0.0.49 · MarshalX/atproto
What's Changed Breaking changes for Direct Messages. Now you must create a client with a chat proxy. See the updated documentation. Add automatically switching to PDS endpoint after login and sess...
000
Ilya (Marshal) @marshal.dev · 22/05/2024
Just shipped: Bluesky Direct Messages in Python SDK! atproto.blue/en/latest/dm... #atproto
atproto.blue
💬 Direct Messages (Chats)
Bluesky Direct Messages were launched on May 22, 2024. It began as a simple chat system for Bluesky users to communicate with one another. Currently, only text messages are supported. The Python SD...
44713
Reposted by Ilya (Marshal)
Bluesky @bsky.app · 22/05/2024
Now available: DMs! Start a private conversation with a friend directly on Bluesky within the Chat tab. 💬 Update to the latest version of the app (1.83) or refresh on desktop to start chatting!
Screenshot of the DM interface in the Bluesky app. One message says “heyyy,” formatted in a blue bubble. The response is the monkey covering eyes emoji in a gray bubble.
25975663983
Ilya (Marshal) @marshal.dev · 25/04/2024
🦋 Bluesky
media.tenor.com
Butterflies Sky GIF
ALT: Butterflies Sky GIF
050
Ilya (Marshal) @marshal.dev · 13/04/2024
The atproto custom feed is open for public view now(with respect of your privacy settings of course)! No login required! bsky.app/profile/did:...
051
Ilya (Marshal) @marshal.dev · 14/03/2024
Content labeling (moderation) is here! This update brings labeling data-stream support as well ozone.tools API! github.com/MarshalX/atp... #atdev #python
github.com
Release v0.0.45 · MarshalX/atproto
What's Changed Content labeling (moderation) is here! This update brings labeling data-stream support as well ozone.tools API! Example how to subscribe and process labeling update Updated document...
1122
Ilya (Marshal) @marshal.dev · 14/03/2024
coming in Python as well!
120
Ilya (Marshal) @marshal.dev · 11/03/2024
Python IPLD lib. Thanks to PGO and new Bound API in pyo3 v0.21 I achieved huge performance boost ones again! The pyo3 team did an awesome work! Many thanks to all contributors! Also, I implemented own CAR reader github.com/MarshalX/pyt... #atdev #python #pyo3
github.com
Release v1.2.3 · MarshalX/python-libipld
What's Changed Thanks to PGO and new Bound API in pyo3 v0.21 I achieved huge performance boost ones again! The pyo3 team did an awesome work! Many thanks to all contributors! Also, I implemented ow...
030
Ilya (Marshal) @marshal.dev · 07/03/2024
🦋 My Open Source project received the initial AT Protocol Grant! (1/6) Bluesky PBC extended the grant to me and my project AT Protocol Python SDK. This project began last spring intending to offer a well-documented, fully-featured, and modern SDK for working with atproto and BlueSky in Python.
6183
Reposted by Ilya (Marshal)
AT Protocol Developers @atproto.com · 06/03/2024
Announcing AT Protocol Grants, to foster the growth and sustainability of the atproto developer ecosystem! In the first iteration, we’ll distribute a total of $10,000 in micro grants of $500 to $2,000 per project based on factors like cost, usage, and more. Read more and apply here:
docs.bsky.app
Announcing AT Protocol Grants | Bluesky
We’re excited to announce the AT Protocol Grants program, aimed at fostering the growth and sustainability of our developer ecosystem.
21546203
Reposted by Ilya (Marshal)
Bluesky @bsky.app · 28/02/2024
📢 App Version 1.70 is rolling out now (1/6) Hashtags! You can now use #hashtags in your posts. When you tap them, you’ll get a menu with lots of handy options:
A screenshot of Bluesky. A menu is open over a post

The post says “#Hashtag incoming”

The menu items are
“See #Hashtag posts”
“See #Hashtag posts by this user”
“Mute #Hashtag posts”
25985644324
Ilya (Marshal) @marshal.dev · 24/02/2024
DAG-CBOR decoder for Python got at least x2 performance boost. If you are owner of custom feed in Python just run "pip install -U libipld" and reduce your CPU usage! #atdev github.com/MarshalX/pyt...
github.com
Release v1.1.1 · MarshalX/python-libipld
What's Changed Add error handling by @MarshalX in #4 Improve performance (at least x2 boost for CAR and DAG-CBOR decoding) by @MarshalX in #4 Fix CID decoding in DAG-CBOR by @MarshalX in #4 Full...
150
Ilya (Marshal) @marshal.dev · 22/02/2024
Python SDK now supports API for Account Migration between PDS! #atdev github.com/MarshalX/atp...
account migration flow
2101
Reposted by Ilya (Marshal)
Bluesky @bsky.app · 22/02/2024
Today, we’re excited to announce that the Bluesky network is federating, or opening up in a way that allows you to host your own data! Read more here for how this will affect your experience on Bluesky (in short: it won’t) and why this matters.  bsky.social/about/blog/0...
bsky.social
Bluesky: An Open Social Web - Bluesky
Today, we’re excited to announce that the Bluesky network is federating, or opening up in a way that allows you to host your own data.
12634861260
Ilya (Marshal) @marshal.dev · 17/02/2024
The AT Protocol SDK for Python is getting better with pyright static type checker. Fixed several bugs (possible and impossible xd) v0.0.42: github.com/MarshalX/atp... #atdev
github.com
Release v0.0.42 · MarshalX/atproto
What's Changed Add send_ogp_link_card.py (Open Graph protocol) example by @OhkuboSGMS in #273 Update lexicons fetched from 8c94979 committed 2024-02-16T02:12:39Z by @MarshalX in #279 Bump cryptogr...
080
Ilya (Marshal) @marshal.dev · 17/02/2024
Lexicon updating is automated including creating a pull request on GitHub in Python SDK! I like how bsky team writes docs for lexicon and it goes right to Python code and deploys automatically on atproto.blue Example PR: github.com/MarshalX/atp...
atproto.blue
Documentation
The AT Protocol SDK documentation for Python
041
Ilya (Marshal) @marshal.dev · 17/02/2024
lmao. bug with data backfilling was with us for about 9 months 🦋 Bluesky custom feed in Python: github.com/MarshalX/blu...
Commit on GitHub with a fix of fetching a cursor from a database
140
Ilya (Marshal) @marshal.dev · 09/02/2024
I wrote up the docs about how you could organize proper work with Bluesky sessions in Python SDK: atproto.blue/en/latest/at... #atdev
atproto.blue
Auth
The AT Protocol has two kinds of authentication: client-server and service-to-service. This page describes the basics of client-server authentication. Login: Login takes a username (handle) and pas...
172
Reposted by Ilya (Marshal)
AT Protocol Developers @atproto.com · 08/02/2024
You can also find more great guides on the firehose from 📄 @marshal.dev in Python atproto.blue/en/latest/at... 📄 @shinyakato.dev in Dart atprotodart.com/docs/package...
0324
Reposted by Ilya (Marshal)
Bluesky @bsky.app · 07/02/2024
Welcome to Bluesky, everyone! We opened access yesterday, and we just crossed 4M people total on the network. 🎉 • 800k+ new users have signed up • Averaged 8.5 new accounts/second • 2M posts were created in the last 24 hours We're so excited to have you here!
458143672635
Reposted by Ilya (Marshal)
qdot @buttplug.engineer · 06/02/2024
Got @mozzius.dev's VisionOS bluesky client up and running on my Apple Vision Pro! Now I can skeet hands-free! (Except I don't think there's posting support yet)
39410
Reposted by Ilya (Marshal)
Bluesky @bsky.app · 06/02/2024
You can now sign up for Bluesky without an invite! 🎉 bsky.social/about/blog/0...
bsky.social
Join Bluesky Today (Bye, Invites!) - Bluesky
Sign up for Bluesky! No invite code required.
542131466875
Reposted by Ilya (Marshal)
AT Protocol Developers @atproto.com · 06/02/2024
Developers, build in an open ecosystem that will never lock you out 🛠️ Check out tutorials, starter templates, and a project showcase for the Bluesky API on our new docs site here! docs.bsky.app
docs.bsky.app
Bluesky Documentation | Bluesky
Explore guides and tutorials to the Bluesky API.
321324422
Ilya (Marshal) @marshal.dev · 06/02/2024
The AT Protocol SDK for Python is on the main page of the new Bluesky documentation website! www.docs.bsky.app
280
Reposted by Ilya (Marshal)
bryan newbold @bnewbold.net · 05/02/2024
atproto dev folks! got a list of "known known tech debt" over here on github. trying to give transparency about what might change in small breaking ways, though we don't have dates or deadlines for most of these
github.com
Protocol Tech Debt (2024) · bluesky-social atproto · Discussion #2128
This is a living list of known issues with atproto, as it is running today in the live network, which we would like to change or fix. It isn’t a list of missing protocol features or product feature....
04612
Ilya (Marshal) @marshal.dev · 04/02/2024
Syntax sugar for records is here! Check out how simple work with basic operations is (img). More changes: github.com/MarshalX/atp...
140