PackageTrack
Sign in Get early access

xrpc

Core library for XRPC communication. This is a wrapped HTTP client for AT Protocol.

1.1.3 4.5K downloads/mo #4013 most downloaded on pub.dev myConsciousness/atproto.dart

What this package is like to depend on

Last release 1 months ago

22 Jul 2026

Ships unpredictably

gaps range from 8 days to 10 months

Nearly every release is documented

notes for 47 of 47 stable releases

Nothing withdrawn

no release was ever pulled

3 years old

49 releases · first in 2023

5 releases in the last 12 months

see the full history below

Release timeline

49 releases · Mar 2023 to Jul 2026
2024 2025 2026
Release Pre-release

Releases

latest 49
  1. 1.1.3 22 Jul 2026
    Release notes
    • chore: bump at_primitives to ^1.2.0.
    Open source →
  2. 1.1.2 16 Jul 2026
    Release notes
    • docs: rewrote the README example, which imported non-existent atproto.Session/atproto.CurrentSession and used fictional NSIDs; it now matches the working example/example.dart (server.atproto.com/createSession/getSession, no atproto import).
    • docs: documented the streaming API (subscribe<T> returning an XRPCResponse<Subscription<T>>) with a minimal usage snippet.
    • chore: bump at_primitives to ^1.1.1.
    Open source →
  3. 1.1.1 16 Jul 2026
    Release notes
    • fix: procedure/record request bodies no longer drop legitimately empty collections (e.g. threadgate.allow: []); only null values are stripped. Query parameters are unchanged. This now also covers the http.post body path (previously it still pruned empty []/{}).
    • fix: subscribe propagates backpressure and cancellation to the underlying WebSocket, preventing unbounded buffering on slow consumers (firehose) and socket leaks.
    • fix: subscribe no longer drains the WebSocket before a consumer listens — the underlying subscription starts paused and resumes on the first listen, so a consumer that delays or never listens cannot buffer firehose frames unboundedly.
    • fix: RateLimit.waitUntilReset() caps its delay at 60s, so a hostile or misconfigured far-future Retry-After HTTP-date can no longer hang the caller indefinitely.
    • fix: an empty 200 response body with a to converter now yields EmptyData instead of throwing a raw FormatException.
    • fix: blob uploads fall back to application/octet-stream (was */*) when the content type cannot be sniffed.
    Open source →
  4. 1.1.0 13 Jul 2026
    Release notes
    • fix: subscribe() now closes its StreamController, propagates WebSocket errors via addError, and always delivers done, so a server disconnect no longer hangs await for forever or leaks the controller.
    • fix: non-JSON error bodies (e.g. an HTML 502 from a proxy or an empty 429) fall back to a typed exception instead of throwing a FormatException, so typed errors and retries keep working.
    • fix!: 409 Conflict is no longer treated as a success and its body is no longer parsed as a data model.
    • fix: unknown HTTP status codes (e.g. Cloudflare 520) map to HttpStatus.unknown instead of throwing UnsupportedError while building the error response.
    • fix: _buildWsUri now uses the Uri builder (percent-encoding, repeated list params, ISO8601 UTC), so multi-valued subscription params produce a valid URL.
    • fix: rate-limit header parsing is now defensive (tryParse, unlimited fallback), so a malformed header no longer turns a successful response into a crash.
    • fix: RateLimit.fromHeaders now honors the Retry-After header (delta-seconds and HTTP-date forms) when usable ratelimit-* headers are absent, so isExceeded and waitUntilReset() respect the backoff of a 429 relayed by a proxy that strips the ratelimit-* headers.
    • fix: the optional ratelimit-policy header is no longer required to parse rate limit info; responses carrying only ratelimit-limit/ratelimit-remaining/ratelimit-reset are now parsed instead of being treated as unlimited.
    • feat: injectable http.Client for connection reuse (non-breaking), plus a procedure adaptor param and subscribe protocol param.
    • chore: bump at_primitives to ^1.1.0.
    Open source →
  5. 1.0.3 25 Sep 2025
    Release notes
    • MIGRATION: Updated to use the consolidated at_primitives package for AT Protocol primitive types.
    • IMPROVEMENT: Reduced dependency complexity by adopting unified primitive types.
    Open source →
  6. 1.0.2 30 Jul 2025
    Release notes
    • Fix SDK constraint to '">=3.8.0 <4.0.0"'.
    Open source →
  7. 1.0.1 28 Jul 2025
    Release notes
    • chore: optimized docs.
    Open source →
  8. 1.0.1-legacy 28 Jul 2025 pre-release

    Nothing published for this version

  9. 1.0.0 18 Jul 2025
    Release notes
    • Bump SDK constraint to '^3.8.0'.
    Open source →
  10. 1.0.0-legacy 24 Jul 2025 pre-release

    Nothing published for this version

  11. 0.6.1 07 Dec 2024
    Release notes
    • Use web_socket_channel: ^3.0.0.
    Open source →
  12. 0.6.0 16 Nov 2024
    Release notes
    • Add parameter headerBuilder on query and procedure functions.
    Open source →
  13. 0.5.3 04 Nov 2024
    Release notes
    • Just return the response when the status code is 409. (#1783)
    Open source →
  14. 0.5.2 22 Feb 2024
    Release notes
    • Bump SDK constraint to '^3.3.0'.
    Open source →
  15. 0.5.1 18 Feb 2024
    Release notes
    • Improved redundant error messages. Now it shows like GET https://bsky.social/xrpc/com.atproto.identity.resolveHandle 400 Error: Params must have the property "handle". (#1253)
    • Added parameters arg on .post and .procedure. (#1252)
    • Removed .upload from xrpc. You can upload from .procedure and pass bytes to body. (#1252)
    Open source →
  16. 0.5.0 27 Jan 2024
    Release notes
    • Renamed types. (#1217)
      • From To to ResponseDataBuilder
      • From ResponseAdaptor to ResponseDataAdaptor
    Open source →
  17. 0.4.5 30 Dec 2023
    Release notes
    Open source →
  18. 0.4.4 29 Dec 2023
    Release notes
    • Upgrade dependencies. (#1146)
    Open source →
  19. 0.4.3 21 Dec 2023
    Release notes
    • Don't remove empty list.
    Open source →
  20. 0.4.2 19 Dec 2023
    Release notes
    Open source →
  21. 0.4.1 15 Nov 2023
    Release notes
    • Added .post function. (#999)
    • Use bsky.network as default when service is missing for .subscribe function.
    Open source →
  22. 0.4.0 09 Nov 2023
    Release notes
    • Added HTTP specific function and exposed as http/http. (#989)
      • .get
    Open source →
  23. 0.3.3 31 Oct 2023
    Release notes
    • You can specify Uint8List as a type parameter.
    Open source →
  24. 0.3.2 17 Sep 2023
    Release notes
    • Fixed field names for rate limits.
    Open source →
  25. 0.3.1 18 Aug 2023
    Release notes
    • Improved documents. (#677)
    Open source →
  26. 0.3.0 13 Aug 2023
    Release notes
    • Drop support for null unsafe Dart, bump SDK constraint to '^3.0.0'. (#599)
    • Dart3 modifier applied.
    Open source →
  27. 0.2.2 08 Aug 2023
    Release notes
    • Supported RateLimit. You can access this property from XRPCResponse.rateLimit. If there is no rate limits, then it's always null. (#636)
    • Added .waitUntilReset method on RateLimit (#643)
    Open source →
  28. 0.2.1 09 Jul 2023
    Release notes
    • Allows Map<String, dynamic> to be specified for generics, allowing response data to be retrieved as JSON. (#563)
    Open source →
  29. 0.2.0 27 Jun 2023
    Release notes
    • Added homepage in pubspec.yaml. (#549)
    • Changed the argument of the upload function to byte data instead of a File object. This change allows uploads to be used without being affected by platform differences. (#556)
    Open source →
  30. 0.1.4 14 Jun 2023
    Release notes
    • Added ResponseAdaptor and removed JsonConverter and Decoder. (#495)
    Open source →
  31. 0.1.3 05 Jun 2023
    Release notes
    • Removed cbor dependency and car_decoder, moved to atproto_core. (#473)
    Open source →
  32. 0.1.2 03 Jun 2023
    Release notes
    • Added decoder parameter in subscribe and delegate data decoding to the responsibility of the app that uses xrpc. (#472)
    Open source →
  33. 0.1.1 31 May 2023
    Release notes
    • Added converter parameter in subscribe. (#446)
    Open source →
  34. 0.1.0 17 May 2023
    Release notes
    • Updated SDK to ">=2.17.0 <4.0.0". (#406)
    Open source →
  35. 0.0.14 05 May 2023
    Release notes
    • Supported subscription function as subscribe. (#318)
    Open source →
  36. 0.0.13 19 Apr 2023
    Release notes
    • Supported protocol options in query, procedure, upload. You can choose http as a protocol for your test locally. Defaults to https. (#269)
    Open source →
  37. 0.0.12 15 Apr 2023
    Release notes
    • Fixed upload. (#249)
    Open source →
  38. 0.0.11 15 Apr 2023
    Release notes
    • Fixed upload. (#249)
    Open source →
  39. 0.0.10 15 Apr 2023
    Release notes
    • Fixed structures. (#249)
    Open source →
  40. 0.0.9 13 Apr 2023
    Release notes
    • Fixed build config. (#249)
    Open source →
  41. 0.0.8 13 Apr 2023
    Release notes
    • Added upload function. (#249)
    Open source →
  42. 0.0.7 09 Apr 2023
    Release notes
    • Downgrade meta to make this package compatible with Flutter. (#242)
    Open source →
  43. 0.0.6 30 Mar 2023
    Release notes
    • Fix to pass null if body is null during POST. (#218)
    Open source →
  44. 0.0.5 26 Mar 2023
    Release notes
    • Fixed XRPCResponse to XRPCResponse<XRPCError> in XRPCException. (#177)
    Open source →
  45. 0.0.4 26 Mar 2023
    Release notes
    • Allow String to be set to data in XRPCResponse. (#174)
    Open source →
  46. 0.0.3 23 Mar 2023
    Release notes
    • Fixed internal structures.
    Open source →
  47. 0.0.2 23 Mar 2023
    Release notes
    • service and getClient/postClient are now nullable. (#146)
    Open source →
  48. 0.0.1 22 Mar 2023
    Release notes
    • First Release.
    Open source →
  49. 0.0.0 18 Mar 2023
    Release notes
    • Let's start.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive