Ilya (Marshal)
Ilya (Marshal)
@marshal.dev
Software Engineer π The AT Protocol SDK for Python: https://atproto.blue/ πΏ Custom Feed in Python: https://github.com/MarshalX/bluesky-feed-generator ποΈ Fast IPLD library for Python: https://github.com/MarshalX/python-libipld https://marshal.dev
4.9K followers93 following438 posts
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
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...
Today weβre launching Bluesky Protocol Services, a new brand and website for the infrastructure Bluesky operates. And Jetstream v2, the best way for developers to use atproto at scale, now with network replay. atproto.com/blog/introdu...
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
Oops, now there is v3.4.1 with even more performance (up to +7%) and parity with other libraries #atproto
π 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
π 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
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!
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!
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!
And as a self-promo yeah, I am looking for a job :) Here is my CV: marshal.dev
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/
A little bit delayed post XD. The full historical convo and bugs list is available here: github.com/MarshalX/pyt...
π 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
Add sync firehose message support, the latest lexicon update, and more github.com/MarshalX/atp... #atproto
Ilya (Marshal) reposted
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 π
Thank you for your contribution! Test coverage, performance benchmarks, and more β that's very professional. I appreciate it!
excited to have contributed opt-in string format validation to the `atproto` python client! we added pydantic-powered validation for formats like handles, DIDs, & NSIDs etc. I wrote about it! alternatebuild.dev/posts/8_strings_matter thanks so much to @marshal.dev for the help & reviews π
The fix was merged! But it does not resolve the main problem. So to be continued here github.com/bluesky-soci...
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... π
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)
And since Python 3.8 died more than moth ago, it looks like I can finally use Py_EnterRecursiveCall CAPI github.com/MarshalX/pyt...
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... π
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
The current public Jetstream instance has been running with `zstd` compression support for ~14 hours now, checking in on performance. The instance supports ~12 consumers right now with varying filters, but that fluctuates throughout the day. All consumers are currently caught up with live.
This is how easy you can upload video to Bluesky using Python! Thanks to @meorge.com contribution which adds send_video method! #atdev
Wanna use video service instead? I show how: github.com/MarshalX/atp...
β‘ 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...
β‘ 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...
@retr0.id`s kindly crafted benchmark of Python dag-cbor parsers has been updated to include new libipld update! github.com/DavidBuchana...
β‘ 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...
Detach quote posts support and performance improvement for JSON parsing in github.com/MarshalX/atp...
Just shipped: Bluesky Direct Messages in Python SDK! atproto.blue/en/latest/dm... #atproto
Ilya (Marshal) reposted
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:...
Content labeling (moderation) is here! This update brings labeling data-stream support as well ozone.tools API! github.com/MarshalX/atp... #atdev #python
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