AGNTCY Slim v0.7.0 Release #48
msardara
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
SLIM v0.7.0 Release Announcement 🚀
We're excited to announce the release of SLIM (Secure Low-Latency Interactive Messaging) v0.7.0! This major release delivers a cleaned and more Pythonic API (drop of all Py* prefixes, addition of completion handles for reliable delivery, simplified session creation), major reliability and security enhancements (graceful session draining, backoff retries, SPIRE-based mTLS identity, HMAC tokens, client credential flow, strengthened MLS ), infrastructure and tooling upgrades (SQLite controller persistence, reworked slimctl` CLI commands, improved logging, container security scanning), Homebrew packaging for slimctl.
🎯 Key Highlights
Py*prefixes removed (clean, conventional naming).sessioncrate) and unified multicast & point-to-point handling (#141bc311).slimctlCLI command/subcommand structure for a more intuitive operational experience #933MsgIDpropagation to all response messages (#891) improving correlation/tracing.slimctl(#e6688b82, #922).📜 Documentation
Py*prefixes; completion handle usage).py.typed) for Python type checkers.⚠ Breaking Changes
PyX→X(e.g.,PyName→Name,PySessionConfiguration→SessionConfiguration).Slim.new(...)async factory removed; use synchronous constructorSlim(Name, provider, verifier).create_sessionsignature changed: destinationNamepassed separately; configuration variants no longer carrypeer_name/channel_name.CompletionHandleobjects; callers can optionally await for reliable delivery semantics.connect,publish,invite, etc.) are no longer exported viaslim_bindings.__all__; operations go throughSlim/Session.session_deleteis called on the session initiator, all remote peers are notified that the session has been closed, and the session is also closed on their end.🔧 Infrastructure & Tooling
configsubcommand toslimctl(#818).slimctl(#933).🛡 Security & Hardening
Compatibility Notes
data-plane/config)Python API Migration Guide (0.6.x → 0.7.0)
Overview of Changes
The Python bindings underwent a structural cleanup:
Py*prefixes removed.Namenow passed separately when creating sessions.CompletionHandleobjects for reliable end-to-end confirmation.Old vs New Imports
Before:
After:
SLIM instance construction
Before:
After:
Session Creation
Before:
After:
Publishing & Delivery Acknowledgment
Before:
After:
Inviting / Removing Participants (Group Sessions)
Before:
After:
Deleting Sessions
Before:
After:
Listening for sessions
Before:
After:
Error Handling
await handlein aawait asyncio.wait_for(handle, timeout=30)Shared Secret Length
For HMAC-backed tokens, use secrets ≥32 bytes. Examples updated:
"secret""abcde-12345-fedcb-67890-deadc"(illustrative; choose random high-entropy value).Removed / Changed APIs
Slim.new,set_default_session_config(configure per-session explicitly).publish,connect,invite.CompletionHandle,App(low-level handle backingSlim).Migration Checklist
Dependencies:
slim-bindings>=0.7.0.Imports:
PyXimports with new names.Construction:
await Slim.new(...)withSlim(...); await slim.connect(config).Session Creation:
peer_name/channel_namefrom configuration.Nameseparately.Message Sending:
publish/publish_to.Group Management:
Deletion:
delete_session.Auth:
Error Handling:
Practical Example (Point-to-Point Session Upgrade)
Before:
After:
Final Notes
The 0.7.0 release focuses on reliability (completion handles + backoff), security (SPIRE + MLS enhancements), and developer ergonomics (Python API cleanup & typing). Adopting the migration steps above should be straightforward — prioritize updating session creation and publish flows first, then refine identity and routing patterns.
Special thanks to all the contributors who made this release happen! @micpapal @lpuskas @sancyx @muscariello @Tehsmash @janosSarusiKis @gomba999 @hackeramitkumar
Beta Was this translation helpful? Give feedback.
All reactions