slim-bindings 0.4.1__tar.gz → 0.6.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of slim-bindings might be problematic. Click here for more details.

Files changed (290) hide show
  1. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/Cargo.lock +26 -46
  2. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/Cargo.toml +12 -12
  3. slim_bindings-0.6.0/PKG-INFO +233 -0
  4. slim_bindings-0.6.0/README.md +213 -0
  5. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/auth/CHANGELOG.md +21 -0
  6. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/auth/Cargo.toml +2 -2
  7. slim_bindings-0.6.0/core/auth/src/auth_provider.rs +514 -0
  8. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/auth/src/builder.rs +1 -1
  9. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/auth/src/jwt.rs +13 -11
  10. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/auth/src/jwt_middleware.rs +7 -7
  11. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/auth/src/lib.rs +1 -0
  12. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/auth/src/resolver.rs +18 -36
  13. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/auth/src/shared_secret.rs +0 -3
  14. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/auth/src/testutils.rs +0 -13
  15. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/CHANGELOG.md +30 -0
  16. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/Cargo.toml +3 -3
  17. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/auth/basic.rs +2 -2
  18. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/auth/jwt.rs +190 -75
  19. slim_bindings-0.6.0/core/config/src/auth/static_jwt.rs +184 -0
  20. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/auth.rs +1 -1
  21. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/component/id.rs +3 -3
  22. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/grpc/client.rs +158 -47
  23. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/grpc/server.rs +136 -64
  24. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/lib.rs +1 -0
  25. slim_bindings-0.6.0/core/config/src/metadata.rs +263 -0
  26. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/opaque.rs +1 -1
  27. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/tls/common.rs +73 -28
  28. slim_bindings-0.6.0/core/config/src/tls/provider.rs +184 -0
  29. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/tls/server.rs +21 -16
  30. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/tls.rs +1 -0
  31. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/tests/e2e.rs +69 -9
  32. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/controller/CHANGELOG.md +25 -0
  33. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/controller/Cargo.toml +6 -1
  34. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/controller/proto/v1/controller.proto +44 -28
  35. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/controller/src/api/gen/controller.proto.v1.rs +51 -30
  36. slim_bindings-0.6.0/core/controller/src/config.rs +631 -0
  37. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/controller/src/service.rs +604 -84
  38. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/CHANGELOG.md +28 -0
  39. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/Cargo.toml +1 -1
  40. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/README.md +1 -1
  41. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/build.rs +1 -1
  42. slim_bindings-0.6.0/core/datapath/proto/v1/data-plane.proto +127 -0
  43. slim_bindings-0.4.1/core/datapath/src/api/gen/pubsub.proto.v1.rs → slim_bindings-0.6.0/core/datapath/src/api/gen/dataplane.proto.v1.rs +83 -67
  44. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/src/api/proto.rs +2 -2
  45. slim_bindings-0.6.0/core/datapath/src/api.rs +22 -0
  46. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/src/connection.rs +1 -1
  47. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/src/message_processing.rs +9 -8
  48. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/src/messages/encoder.rs +4 -0
  49. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/src/messages/utils.rs +143 -24
  50. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/src/tables/subscription_table.rs +23 -16
  51. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/tests/data_path_test.rs +2 -2
  52. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/mls/CHANGELOG.md +16 -0
  53. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/mls/Cargo.toml +1 -1
  54. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/service/CHANGELOG.md +46 -0
  55. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/service/Cargo.toml +2 -1
  56. slim_bindings-0.6.0/core/service/src/app.rs +603 -0
  57. slim_bindings-0.6.0/core/service/src/errors.rs +48 -0
  58. slim_bindings-0.6.0/core/service/src/lib.rs +21 -0
  59. slim_bindings-0.4.1/core/service/src/lib.rs → slim_bindings-0.6.0/core/service/src/service.rs +108 -128
  60. {slim_bindings-0.4.1/core/service/src → slim_bindings-0.6.0/core/service/src/session}/channel_endpoint.rs +369 -69
  61. slim_bindings-0.6.0/core/service/src/session/common.rs +37 -0
  62. slim_bindings-0.6.0/core/service/src/session/config.rs +110 -0
  63. slim_bindings-0.6.0/core/service/src/session/context.rs +285 -0
  64. {slim_bindings-0.4.1/core/service/src → slim_bindings-0.6.0/core/service/src/session}/errors.rs +7 -45
  65. slim_bindings-0.6.0/core/service/src/session/handle.rs +1008 -0
  66. {slim_bindings-0.4.1/core/service/src → slim_bindings-0.6.0/core/service/src/session}/interceptor.rs +4 -3
  67. {slim_bindings-0.4.1/core/service/src → slim_bindings-0.6.0/core/service/src/session}/interceptor_mls.rs +19 -13
  68. {slim_bindings-0.4.1/core/service/src → slim_bindings-0.6.0/core/service/src/session}/moderator_task.rs +3 -1
  69. slim_bindings-0.4.1/core/service/src/streaming.rs → slim_bindings-0.6.0/core/service/src/session/multicast.rs +351 -400
  70. slim_bindings-0.6.0/core/service/src/session/notification.rs +26 -0
  71. slim_bindings-0.4.1/core/service/src/fire_and_forget.rs → slim_bindings-0.6.0/core/service/src/session/point_to_point.rs +839 -454
  72. {slim_bindings-0.4.1/core/service/src → slim_bindings-0.6.0/core/service/src/session}/producer_buffer.rs +20 -6
  73. {slim_bindings-0.4.1/core/service/src → slim_bindings-0.6.0/core/service/src/session}/receiver_buffer.rs +98 -15
  74. slim_bindings-0.6.0/core/service/src/session/session_layer.rs +629 -0
  75. {slim_bindings-0.4.1/core/service/src → slim_bindings-0.6.0/core/service/src/session}/timer.rs +6 -3
  76. slim_bindings-0.6.0/core/service/src/session/traits.rs +102 -0
  77. slim_bindings-0.6.0/core/service/src/session/transmitter.rs +317 -0
  78. slim_bindings-0.6.0/core/service/src/session.rs +55 -0
  79. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/tracing/CHANGELOG.md +12 -0
  80. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/tracing/Cargo.toml +1 -1
  81. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/tracing/src/lib.rs +9 -8
  82. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/pyproject.toml +5 -7
  83. {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/CHANGELOG.md +37 -1
  84. slim_bindings-0.6.0/python/bindings/README.md +213 -0
  85. slim_bindings-0.6.0/python/bindings/SESSION.md +353 -0
  86. slim_bindings-0.6.0/python/bindings/Taskfile.yaml +92 -0
  87. {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/examples/CHANGELOG.md +12 -0
  88. {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/examples/Dockerfile +10 -5
  89. slim_bindings-0.6.0/python/bindings/examples/README.md +486 -0
  90. slim_bindings-0.6.0/python/bindings/examples/Taskfile.yaml +100 -0
  91. {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/examples/pyproject.toml +4 -6
  92. slim_bindings-0.6.0/python/bindings/examples/src/slim_bindings_examples/README_group.md +214 -0
  93. slim_bindings-0.6.0/python/bindings/examples/src/slim_bindings_examples/README_point_to_point.md +182 -0
  94. slim_bindings-0.6.0/python/bindings/examples/src/slim_bindings_examples/__init__.py +76 -0
  95. slim_bindings-0.6.0/python/bindings/examples/src/slim_bindings_examples/common.py +384 -0
  96. slim_bindings-0.6.0/python/bindings/examples/src/slim_bindings_examples/group.py +295 -0
  97. slim_bindings-0.6.0/python/bindings/examples/src/slim_bindings_examples/point_to_point.py +229 -0
  98. slim_bindings-0.6.0/python/bindings/examples/src/slim_bindings_examples/slim.py +154 -0
  99. slim_bindings-0.6.0/python/bindings/slim_bindings/__init__.py +77 -0
  100. slim_bindings-0.6.0/python/bindings/slim_bindings/_slim_bindings.pyi +476 -0
  101. slim_bindings-0.6.0/python/bindings/slim_bindings/errors.py +53 -0
  102. slim_bindings-0.6.0/python/bindings/slim_bindings/session.py +219 -0
  103. slim_bindings-0.6.0/python/bindings/slim_bindings/slim.py +383 -0
  104. slim_bindings-0.6.0/python/bindings/slim_bindings/version.py +38 -0
  105. {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/src/lib.rs +12 -4
  106. {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/src/pyidentity.rs +233 -0
  107. slim_bindings-0.6.0/python/bindings/src/pymessage.rs +117 -0
  108. {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/src/pyservice.rs +231 -186
  109. slim_bindings-0.6.0/python/bindings/src/pysession.rs +407 -0
  110. {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/src/utils.rs +8 -9
  111. slim_bindings-0.6.0/python/bindings/tests/common.py +58 -0
  112. slim_bindings-0.6.0/python/bindings/tests/conftest.py +78 -0
  113. slim_bindings-0.6.0/python/bindings/tests/test_bindings.py +486 -0
  114. slim_bindings-0.6.0/python/bindings/tests/test_identity.py +203 -0
  115. slim_bindings-0.6.0/python/bindings/tests/test_multicast.py +233 -0
  116. slim_bindings-0.6.0/python/bindings/tests/test_point_to_point.py +176 -0
  117. slim_bindings-0.6.0/python/bindings/tests/test_session_metadata.py +80 -0
  118. slim_bindings-0.6.0/python/bindings/uv.lock +455 -0
  119. slim_bindings-0.6.0/slim_bindings/__init__.py +77 -0
  120. slim_bindings-0.6.0/slim_bindings/_slim_bindings.pyi +476 -0
  121. slim_bindings-0.6.0/slim_bindings/errors.py +53 -0
  122. slim_bindings-0.6.0/slim_bindings/session.py +219 -0
  123. slim_bindings-0.6.0/slim_bindings/slim.py +383 -0
  124. slim_bindings-0.6.0/slim_bindings/version.py +38 -0
  125. slim_bindings-0.4.1/PKG-INFO +0 -61
  126. slim_bindings-0.4.1/README.md +0 -41
  127. slim_bindings-0.4.1/core/config/src/auth/bearer.rs +0 -95
  128. slim_bindings-0.4.1/core/controller/src/config.rs +0 -83
  129. slim_bindings-0.4.1/core/datapath/proto/v1/pubsub.proto +0 -114
  130. slim_bindings-0.4.1/core/datapath/src/api.rs +0 -22
  131. slim_bindings-0.4.1/core/service/src/app.rs +0 -1224
  132. slim_bindings-0.4.1/core/service/src/session.rs +0 -591
  133. slim_bindings-0.4.1/core/service/src/testutils.rs +0 -70
  134. slim_bindings-0.4.1/core/service/src/transmitter.rs +0 -105
  135. slim_bindings-0.4.1/python-bindings/README.md +0 -41
  136. slim_bindings-0.4.1/python-bindings/Taskfile.yml +0 -229
  137. slim_bindings-0.4.1/python-bindings/WINDOWS.md +0 -109
  138. slim_bindings-0.4.1/python-bindings/examples/src/slim_bindings_examples/__init__.py +0 -47
  139. slim_bindings-0.4.1/python-bindings/examples/src/slim_bindings_examples/common.py +0 -259
  140. slim_bindings-0.4.1/python-bindings/examples/src/slim_bindings_examples/fire_and_forget.py +0 -201
  141. slim_bindings-0.4.1/python-bindings/examples/src/slim_bindings_examples/pubsub.py +0 -150
  142. slim_bindings-0.4.1/python-bindings/examples/src/slim_bindings_examples/request_reply.py +0 -182
  143. slim_bindings-0.4.1/python-bindings/examples/src/slim_bindings_examples/slim.py +0 -87
  144. slim_bindings-0.4.1/python-bindings/slim_bindings/__init__.py +0 -712
  145. slim_bindings-0.4.1/python-bindings/slim_bindings/_slim_bindings.pyi +0 -161
  146. slim_bindings-0.4.1/python-bindings/slima2a/README.md +0 -52
  147. slim_bindings-0.4.1/python-bindings/slima2a/Taskfile.yaml +0 -11
  148. slim_bindings-0.4.1/python-bindings/slima2a/buf.gen.yaml +0 -22
  149. slim_bindings-0.4.1/python-bindings/slima2a/examples/echo_agent/README.md +0 -19
  150. slim_bindings-0.4.1/python-bindings/slima2a/examples/echo_agent/__init__.py +0 -0
  151. slim_bindings-0.4.1/python-bindings/slima2a/examples/echo_agent/client.py +0 -184
  152. slim_bindings-0.4.1/python-bindings/slima2a/examples/echo_agent/echo_agent.py +0 -3
  153. slim_bindings-0.4.1/python-bindings/slima2a/examples/echo_agent/echo_agent_executor.py +0 -43
  154. slim_bindings-0.4.1/python-bindings/slima2a/examples/echo_agent/server.py +0 -93
  155. slim_bindings-0.4.1/python-bindings/slima2a/examples/travel_planner_agent/README.md +0 -55
  156. slim_bindings-0.4.1/python-bindings/slima2a/examples/travel_planner_agent/__init__.py +0 -0
  157. slim_bindings-0.4.1/python-bindings/slima2a/examples/travel_planner_agent/agent.py +0 -88
  158. slim_bindings-0.4.1/python-bindings/slima2a/examples/travel_planner_agent/agent_executor.py +0 -54
  159. slim_bindings-0.4.1/python-bindings/slima2a/examples/travel_planner_agent/client.py +0 -107
  160. slim_bindings-0.4.1/python-bindings/slima2a/examples/travel_planner_agent/config.json +0 -8
  161. slim_bindings-0.4.1/python-bindings/slima2a/examples/travel_planner_agent/server.py +0 -68
  162. slim_bindings-0.4.1/python-bindings/slima2a/pyproject.toml +0 -33
  163. slim_bindings-0.4.1/python-bindings/slima2a/slima2a/__init__.py +0 -0
  164. slim_bindings-0.4.1/python-bindings/slima2a/slima2a/client_transport.py +0 -202
  165. slim_bindings-0.4.1/python-bindings/slima2a/slima2a/handler.py +0 -370
  166. slim_bindings-0.4.1/python-bindings/slima2a/slima2a/py.typed +0 -0
  167. slim_bindings-0.4.1/python-bindings/slima2a/slima2a/types/__init__.py +0 -0
  168. slim_bindings-0.4.1/python-bindings/slima2a/slima2a/types/a2a_pb2_srpc.py +0 -189
  169. slim_bindings-0.4.1/python-bindings/src/pysession.rs +0 -208
  170. slim_bindings-0.4.1/python-bindings/srpc/README.md +0 -5
  171. slim_bindings-0.4.1/python-bindings/srpc/pyproject.toml +0 -43
  172. slim_bindings-0.4.1/python-bindings/srpc/srpc/__init__.py +0 -29
  173. slim_bindings-0.4.1/python-bindings/srpc/srpc/channel.py +0 -364
  174. slim_bindings-0.4.1/python-bindings/srpc/srpc/common.py +0 -200
  175. slim_bindings-0.4.1/python-bindings/srpc/srpc/context.py +0 -32
  176. slim_bindings-0.4.1/python-bindings/srpc/srpc/examples/simple/buf.gen.yaml +0 -21
  177. slim_bindings-0.4.1/python-bindings/srpc/srpc/examples/simple/client.py +0 -60
  178. slim_bindings-0.4.1/python-bindings/srpc/srpc/examples/simple/example.proto +0 -20
  179. slim_bindings-0.4.1/python-bindings/srpc/srpc/examples/simple/server.py +0 -102
  180. slim_bindings-0.4.1/python-bindings/srpc/srpc/examples/simple/types/example_pb2.py +0 -41
  181. slim_bindings-0.4.1/python-bindings/srpc/srpc/examples/simple/types/example_pb2.pyi +0 -21
  182. slim_bindings-0.4.1/python-bindings/srpc/srpc/examples/simple/types/example_pb2_srpc.py +0 -98
  183. slim_bindings-0.4.1/python-bindings/srpc/srpc/py.typed +0 -0
  184. slim_bindings-0.4.1/python-bindings/srpc/srpc/rpc.py +0 -90
  185. slim_bindings-0.4.1/python-bindings/srpc/srpc/server.py +0 -242
  186. slim_bindings-0.4.1/python-bindings/tests/common.py +0 -24
  187. slim_bindings-0.4.1/python-bindings/tests/conftest.py +0 -39
  188. slim_bindings-0.4.1/python-bindings/tests/test_bindings.py +0 -366
  189. slim_bindings-0.4.1/python-bindings/tests/test_fire_forget.py +0 -99
  190. slim_bindings-0.4.1/python-bindings/tests/test_identity.py +0 -168
  191. slim_bindings-0.4.1/python-bindings/tests/test_pubsub.py +0 -161
  192. slim_bindings-0.4.1/python-bindings/tests/test_request_reply.py +0 -94
  193. slim_bindings-0.4.1/python-bindings/tests/test_streaming.py +0 -149
  194. slim_bindings-0.4.1/python-bindings/uv.lock +0 -1651
  195. slim_bindings-0.4.1/slim_bindings/__init__.py +0 -712
  196. slim_bindings-0.4.1/slim_bindings/_slim_bindings.pyi +0 -161
  197. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/auth/README.md +0 -0
  198. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/auth/src/errors.rs +0 -0
  199. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/auth/src/file_watcher.rs +0 -0
  200. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/auth/src/traits.rs +0 -0
  201. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/README.md +0 -0
  202. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/build.rs +0 -0
  203. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/proto/hello.proto +0 -0
  204. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/component/configuration.rs +0 -0
  205. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/component.rs +0 -0
  206. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/grpc/compression.rs +0 -0
  207. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/grpc/errors.rs +0 -0
  208. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/grpc/headers_middleware.rs +0 -0
  209. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/grpc/helloworld.rs +0 -0
  210. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/grpc/proxy.rs +0 -0
  211. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/grpc/schema/client-config.schema.json +0 -0
  212. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/grpc/schema/generate_schema.rs +0 -0
  213. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/grpc.rs +0 -0
  214. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/provider/env.rs +0 -0
  215. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/provider/file.rs +0 -0
  216. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/provider/lib.rs +0 -0
  217. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/provider.rs +0 -0
  218. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/testutils/helloworld.rs +0 -0
  219. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/testutils/tower_service.rs +0 -0
  220. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/testutils.rs +0 -0
  221. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/tls/client.rs +0 -0
  222. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/grpc/ca.crt +0 -0
  223. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/grpc/server.crt +0 -0
  224. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/grpc/server.key +0 -0
  225. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/jwt/ec256-public.pem +0 -0
  226. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/jwt/ec256-wrong.pem +0 -0
  227. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/jwt/ec256.pem +0 -0
  228. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/jwt/ec384-public.pem +0 -0
  229. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/jwt/ec384-wrong.pem +0 -0
  230. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/jwt/ec384.pem +0 -0
  231. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/jwt/eddsa-public.pem +0 -0
  232. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/jwt/eddsa-wrong.pem +0 -0
  233. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/jwt/eddsa.pem +0 -0
  234. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/jwt/rsa-public.pem +0 -0
  235. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/jwt/rsa-wrong.pem +0 -0
  236. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/jwt/rsa.pem +0 -0
  237. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/testfile +0 -0
  238. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/tls/ca-1.crt +0 -0
  239. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/tls/ca-2.crt +0 -0
  240. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/tls/ca-bad.crt +0 -0
  241. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/tls/client-1.crt +0 -0
  242. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/tls/client-1.key +0 -0
  243. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/tls/client-2.crt +0 -0
  244. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/tls/client-2.key +0 -0
  245. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/tls/server-1.crt +0 -0
  246. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/tls/server-1.key +0 -0
  247. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/tls/server-2.crt +0 -0
  248. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/tls/server-2.key +0 -0
  249. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/tests/tls.rs +0 -0
  250. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/controller/README.md +0 -0
  251. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/controller/build.rs +0 -0
  252. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/controller/src/api/proto.rs +0 -0
  253. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/controller/src/api.rs +0 -0
  254. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/controller/src/errors.rs +0 -0
  255. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/controller/src/lib.rs +0 -0
  256. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/benches/pool_benchmark.rs +0 -0
  257. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/src/errors.rs +0 -0
  258. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/src/forwarder.rs +0 -0
  259. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/src/lib.rs +0 -0
  260. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/src/messages.rs +0 -0
  261. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/src/tables/connection_table.rs +0 -0
  262. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/src/tables/errors.rs +0 -0
  263. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/src/tables/pool.rs +0 -0
  264. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/src/tables/remote_subscription_table.rs +0 -0
  265. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/src/tables.rs +0 -0
  266. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/mls/README.md +0 -0
  267. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/mls/src/errors.rs +0 -0
  268. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/mls/src/identity_provider.rs +0 -0
  269. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/mls/src/lib.rs +0 -0
  270. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/mls/src/mls.rs +0 -0
  271. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/service/README.md +0 -0
  272. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/signal/CHANGELOG.md +0 -0
  273. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/signal/Cargo.toml +0 -0
  274. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/signal/README.md +0 -0
  275. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/signal/src/lib.rs +0 -0
  276. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/tracing/README.md +0 -0
  277. {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/tracing/src/utils.rs +0 -0
  278. {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/BUILD.md +0 -0
  279. {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/Cargo.toml +0 -0
  280. {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/build.rs +0 -0
  281. {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/src/bin/stub_gen.rs +0 -0
  282. {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/src/build_info.rs +0 -0
  283. {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/tests/testdata/ec256-public.pem +0 -0
  284. {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/tests/testdata/ec256.pem +0 -0
  285. {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/tests/testdata/ec384-public.pem +0 -0
  286. {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/tests/testdata/ec384.pem +0 -0
  287. {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/tests/testdata/eddsa-public.pem +0 -0
  288. {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/tests/testdata/eddsa.pem +0 -0
  289. {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/tests/testdata/rsa-public.pem +0 -0
  290. {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/tests/testdata/rsa.pem +0 -0
@@ -18,7 +18,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
18
18
  checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
19
19
 
20
20
  [[package]]
21
- name = "agntcy-protoc-srpc-plugin"
21
+ name = "agntcy-protoc-slimrpc-plugin"
22
22
  version = "0.1.0"
23
23
  dependencies = [
24
24
  "anyhow",
@@ -29,18 +29,19 @@ dependencies = [
29
29
 
30
30
  [[package]]
31
31
  name = "agntcy-slim"
32
- version = "0.4.0"
32
+ version = "0.6.0"
33
33
  dependencies = [
34
34
  "agntcy-slim-config",
35
35
  "agntcy-slim-service",
36
36
  "agntcy-slim-signal",
37
37
  "agntcy-slim-tracing",
38
38
  "clap",
39
- "duration-str",
39
+ "duration-string",
40
40
  "jemallocator",
41
41
  "lazy_static",
42
42
  "num_cpus",
43
43
  "serde",
44
+ "serde_json",
44
45
  "serde_yaml",
45
46
  "thiserror 2.0.12",
46
47
  "tokio",
@@ -50,8 +51,9 @@ dependencies = [
50
51
 
51
52
  [[package]]
52
53
  name = "agntcy-slim-auth"
53
- version = "0.2.0"
54
+ version = "0.3.1"
54
55
  dependencies = [
56
+ "agntcy-slim-config",
55
57
  "async-trait",
56
58
  "aws-lc-rs",
57
59
  "base64 0.22.1",
@@ -63,7 +65,6 @@ dependencies = [
63
65
  "parking_lot",
64
66
  "pin-project",
65
67
  "reqwest",
66
- "rustls",
67
68
  "schemars",
68
69
  "serde",
69
70
  "serde_json",
@@ -101,12 +102,12 @@ dependencies = [
101
102
 
102
103
  [[package]]
103
104
  name = "agntcy-slim-config"
104
- version = "0.2.0"
105
+ version = "0.4.0"
105
106
  dependencies = [
106
107
  "agntcy-slim-auth",
107
108
  "base64 0.22.1",
108
109
  "drain",
109
- "duration-str",
110
+ "duration-string",
110
111
  "futures",
111
112
  "http 1.3.1",
112
113
  "hyper-rustls",
@@ -140,19 +141,24 @@ dependencies = [
140
141
 
141
142
  [[package]]
142
143
  name = "agntcy-slim-controller"
143
- version = "0.2.0"
144
+ version = "0.4.0"
144
145
  dependencies = [
146
+ "agntcy-slim-auth",
145
147
  "agntcy-slim-config",
146
148
  "agntcy-slim-datapath",
147
149
  "agntcy-slim-signal",
148
150
  "agntcy-slim-tracing",
151
+ "base64 0.22.1",
152
+ "bincode",
149
153
  "drain",
150
154
  "h2 0.4.10",
151
155
  "parking_lot",
152
156
  "prost 0.13.5",
153
157
  "protoc-bin-vendored",
158
+ "rand 0.9.1",
154
159
  "serde",
155
160
  "serde_json",
161
+ "serde_yaml",
156
162
  "thiserror 2.0.12",
157
163
  "tokio",
158
164
  "tokio-stream",
@@ -166,7 +172,7 @@ dependencies = [
166
172
 
167
173
  [[package]]
168
174
  name = "agntcy-slim-datapath"
169
- version = "0.8.0"
175
+ version = "0.10.0"
170
176
  dependencies = [
171
177
  "agntcy-slim-config",
172
178
  "agntcy-slim-tracing",
@@ -195,7 +201,7 @@ dependencies = [
195
201
 
196
202
  [[package]]
197
203
  name = "agntcy-slim-mls"
198
- version = "0.1.0"
204
+ version = "0.1.2"
199
205
  dependencies = [
200
206
  "agntcy-slim-auth",
201
207
  "agntcy-slim-datapath",
@@ -222,7 +228,7 @@ dependencies = [
222
228
 
223
229
  [[package]]
224
230
  name = "agntcy-slim-service"
225
- version = "0.5.0"
231
+ version = "0.7.0"
226
232
  dependencies = [
227
233
  "agntcy-slim-auth",
228
234
  "agntcy-slim-config",
@@ -230,6 +236,7 @@ dependencies = [
230
236
  "agntcy-slim-datapath",
231
237
  "agntcy-slim-mls",
232
238
  "async-trait",
239
+ "base64 0.22.1",
233
240
  "bincode",
234
241
  "dirs",
235
242
  "drain",
@@ -254,7 +261,7 @@ dependencies = [
254
261
 
255
262
  [[package]]
256
263
  name = "agntcy-slim-tracing"
257
- version = "0.2.2"
264
+ version = "0.2.4"
258
265
  dependencies = [
259
266
  "agntcy-slim-config",
260
267
  "once_cell",
@@ -357,12 +364,6 @@ version = "1.0.98"
357
364
  source = "registry+https://github.com/rust-lang/crates.io-index"
358
365
  checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487"
359
366
 
360
- [[package]]
361
- name = "arrayvec"
362
- version = "0.7.6"
363
- source = "registry+https://github.com/rust-lang/crates.io-index"
364
- checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
365
-
366
367
  [[package]]
367
368
  name = "assert-json-diff"
368
369
  version = "2.0.2"
@@ -1023,17 +1024,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1023
1024
  checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813"
1024
1025
 
1025
1026
  [[package]]
1026
- name = "duration-str"
1027
- version = "0.12.0"
1027
+ name = "duration-string"
1028
+ version = "0.5.3"
1028
1029
  source = "registry+https://github.com/rust-lang/crates.io-index"
1029
- checksum = "64ad6b66883f70e2f38f1ee99e3797b9d7e7b7fb051ed2e23e027c81753056c8"
1030
+ checksum = "edbd404ab304f4426de3e981a875a77129597ce04202c9b8b4502c6f1c246809"
1030
1031
  dependencies = [
1031
- "chrono",
1032
- "rust_decimal",
1033
1032
  "serde",
1034
- "thiserror 2.0.12",
1035
- "time",
1036
- "winnow 0.6.26",
1037
1033
  ]
1038
1034
 
1039
1035
  [[package]]
@@ -3359,16 +3355,6 @@ dependencies = [
3359
3355
  "windows-sys 0.52.0",
3360
3356
  ]
3361
3357
 
3362
- [[package]]
3363
- name = "rust_decimal"
3364
- version = "1.37.2"
3365
- source = "registry+https://github.com/rust-lang/crates.io-index"
3366
- checksum = "b203a6425500a03e0919c42d3c47caca51e79f1132046626d2c8871c5092035d"
3367
- dependencies = [
3368
- "arrayvec",
3369
- "num-traits",
3370
- ]
3371
-
3372
3358
  [[package]]
3373
3359
  name = "rustc-demangle"
3374
3360
  version = "0.1.25"
@@ -3780,11 +3766,14 @@ dependencies = [
3780
3766
  "agntcy-slim",
3781
3767
  "agntcy-slim-auth",
3782
3768
  "agntcy-slim-config",
3769
+ "agntcy-slim-controller",
3783
3770
  "agntcy-slim-datapath",
3784
3771
  "agntcy-slim-mls",
3785
3772
  "agntcy-slim-service",
3786
3773
  "agntcy-slim-signal",
3774
+ "anyhow",
3787
3775
  "clap",
3776
+ "prost 0.13.5",
3788
3777
  "tokio",
3789
3778
  "tracing",
3790
3779
  ]
@@ -4163,7 +4152,7 @@ dependencies = [
4163
4152
  "serde_spanned",
4164
4153
  "toml_datetime",
4165
4154
  "toml_write",
4166
- "winnow 0.7.11",
4155
+ "winnow",
4167
4156
  ]
4168
4157
 
4169
4158
  [[package]]
@@ -5000,15 +4989,6 @@ version = "0.53.0"
5000
4989
  source = "registry+https://github.com/rust-lang/crates.io-index"
5001
4990
  checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486"
5002
4991
 
5003
- [[package]]
5004
- name = "winnow"
5005
- version = "0.6.26"
5006
- source = "registry+https://github.com/rust-lang/crates.io-index"
5007
- checksum = "1e90edd2ac1aa278a5c4599b1d89cf03074b610800f866d4026dc199d7929a28"
5008
- dependencies = [
5009
- "memchr",
5010
- ]
5011
-
5012
4992
  [[package]]
5013
4993
  name = "winnow"
5014
4994
  version = "0.7.11"
@@ -1,6 +1,6 @@
1
1
  [workspace]
2
2
 
3
- members = ["python-bindings"]
3
+ members = ["python/bindings"]
4
4
 
5
5
  default-members = [
6
6
  "core/config",
@@ -10,26 +10,26 @@ default-members = [
10
10
  "core/service",
11
11
  "core/signal",
12
12
  "core/tracing",
13
- "srpc-compiler",
13
+ "slimrpc-compiler",
14
14
  "examples",
15
15
  "testing",
16
16
  ]
17
17
 
18
- exclude = ["integrations/mcp/mcp-proxy"]
18
+ exclude = ["integrations/mcp-proxy"]
19
19
 
20
20
  resolver = "2"
21
21
 
22
22
  [workspace.dependencies]
23
23
  # Local dependencies
24
- agntcy-slim = { path = "core/slim", version = "0.4.0" }
25
- agntcy-slim-auth = { path = "core/auth", version = "0.2.0" }
26
- agntcy-slim-config = { path = "core/config", version = "0.2.0" }
27
- agntcy-slim-controller = { path = "core/controller", version = "0.2.0" }
28
- agntcy-slim-datapath = { path = "core/datapath", version = "0.8.0" }
29
- agntcy-slim-mls = { path = "core/mls", version = "0.1.0" }
30
- agntcy-slim-service = { path = "core/service", version = "0.5.0" }
24
+ agntcy-slim = { path = "core/slim", version = "0.6.0" }
25
+ agntcy-slim-auth = { path = "core/auth", version = "0.3.1" }
26
+ agntcy-slim-config = { path = "core/config", version = "0.4.0" }
27
+ agntcy-slim-controller = { path = "core/controller", version = "0.4.0" }
28
+ agntcy-slim-datapath = { path = "core/datapath", version = "0.10.0" }
29
+ agntcy-slim-mls = { path = "core/mls", version = "0.1.2" }
30
+ agntcy-slim-service = { path = "core/service", version = "0.7.0" }
31
31
  agntcy-slim-signal = { path = "core/signal", version = "0.1.3" }
32
- agntcy-slim-tracing = { path = "core/tracing", version = "0.2.2" }
32
+ agntcy-slim-tracing = { path = "core/tracing", version = "0.2.4" }
33
33
 
34
34
  anyhow = "1.0.98"
35
35
 
@@ -43,7 +43,7 @@ clap = { version = "4.5.23", features = ["derive", "env"] }
43
43
 
44
44
  criterion = { version = "0.5", features = ["html_reports"] }
45
45
  drain = { version = "0.1", features = ["retain"] }
46
- duration-str = "0.12.0"
46
+ duration-string = { version = "0.5.3", features = ["serde"] }
47
47
  futures = "0.3.31"
48
48
  h2 = "0.4.7"
49
49
  headers = "0.4.1"
@@ -0,0 +1,233 @@
1
+ Metadata-Version: 2.4
2
+ Name: slim-bindings
3
+ Version: 0.6.0
4
+ Classifier: Development Status :: 3 - Alpha
5
+ Classifier: Intended Audience :: Developers
6
+ Classifier: Topic :: Software Development :: Libraries
7
+ Classifier: Programming Language :: Python :: 3.9
8
+ Classifier: Programming Language :: Python :: 3.10
9
+ Classifier: Programming Language :: Python :: 3.11
10
+ Classifier: Programming Language :: Python :: 3.12
11
+ Classifier: Programming Language :: Python :: 3.13
12
+ Summary: SLIM Rust bindings for Python
13
+ License-Expression: Apache-2.0
14
+ Requires-Python: >=3.9, <4.0
15
+ Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
16
+ Project-URL: Repository, https://github.com/agntcy/slim
17
+ Project-URL: Issues, https://github.com/agntcy/slim/issues
18
+ Project-URL: Changelog, https://github.com/agntcy/slim/blob/main/data-plane/python/bindings/CHANGELOG.md
19
+
20
+ # SLIM Python Bindings
21
+
22
+ High-level asynchronous Python bindings for the SLIM data‑plane service (Rust core).
23
+ They let you embed SLIM directly into your Python application to:
24
+
25
+ - Instantiate a local SLIM service (`Slim.new`)
26
+ - Run a server listener (start / stop a SLIM endpoint)
27
+ - Establish outbound client connections (`connect` / `disconnect`)
28
+ - Create, accept, configure, and delete sessions (Point2Point / Group)
29
+ - Publish / receive messages (point‑to‑point or group (channel) based)
30
+ - Manage routing and subscriptions (add / remove routes, subscribe / unsubscribe)
31
+ - Configure identity & trust (shared secret, static JWT, dynamic signing JWT, JWKS auto‑resolve)
32
+ - Integrate tracing / OpenTelemetry
33
+
34
+ ---
35
+
36
+ ## Supported Session Types
37
+
38
+ | Type | Description | Sticky Peer | Metadata | MLS (group security) |
39
+ |-------------|------------------------------------------------------------------------------------------|-------------|----------|----------------------|
40
+ | Point2Point | Point-to-point with a fixed destination | Yes | Yes | Yes |
41
+ | Group | Many-to-many via channel/topic name (channel moderator can invite/remove participants) | N/A | Yes | Yes |
42
+
43
+ ---
44
+
45
+ ## Identity & Authentication
46
+
47
+ You can choose among multiple identity provider / verifier strategies:
48
+
49
+ | Provider Variant | Use Case | Notes |
50
+ |--------------------------------------|-----------------------------------------|-------|
51
+ | `PyIdentityProvider.SharedSecret` | Local dev / tests | Symmetric; not for production |
52
+ | `PyIdentityProvider.StaticJwt` | Pre-issued token loaded from file | No key rotation; simple |
53
+ | `PyIdentityProvider.Jwt` | Dynamically signed JWT (private key) | Supports exp, iss, aud, sub, duration |
54
+ | `PyIdentityVerifier.Jwt` | Verifies JWT (public key or JWKS auto) | Optional claim requirements (`require_iss`, etc.) |
55
+ | `PyIdentityVerifier.SharedSecret` | Matches shared secret provider | Symmetric validation |
56
+
57
+ JWKS auto‑resolution (when configured in the verifier with `autoresolve=True`) will:
58
+ 1. Try OpenID discovery (`/.well-known/openid-configuration`) for `jwks_uri`
59
+ 2. Fallback to `/.well-known/jwks.json`
60
+ 3. Cache the key set with a TTL and prefer `kid` match, else algorithm match.
61
+
62
+ ---
63
+
64
+ ## Quick Start
65
+
66
+ ### 1. Install
67
+
68
+ ```bash
69
+ pip install slim-bindings
70
+ ```
71
+
72
+ ### 2. Minimal Receiver Example
73
+
74
+ ```python
75
+ import asyncio
76
+ import slim_bindings
77
+
78
+ async def main():
79
+ # 1. Create identity (shared secret for demo)
80
+ provider = slim_bindings.PyIdentityProvider.SharedSecret(identity="demo", shared_secret="secret")
81
+ verifier = slim_bindings.PyIdentityVerifier.SharedSecret(identity="demo", shared_secret="secret")
82
+
83
+ local_name = slim_bindings.PyName("org", "namespace", "demo")
84
+ slim = await slim_bindings.Slim.new(local_name, provider, verifier)
85
+
86
+ # 2. (Optionally) connect as a client to a remote endpoint
87
+ # await slim.connect({"endpoint": "http://127.0.0.1:50000", "tls": {"insecure": True}})
88
+
89
+ # 3. (Optionally) run a local server (insecure TLS for local dev)
90
+ # await slim.run_server({"endpoint": "127.0.0.1:40000", "tls": {"insecure": True}})
91
+
92
+ # 4. Wait for inbound session
93
+ print("Waiting for an inbound session...")
94
+ session = await slim.listen_for_session()
95
+
96
+ # 5. Receive one message and reply
97
+ msg_ctx, payload = await session.get_message()
98
+ print("Received:", payload)
99
+ await session.publish_to(msg_ctx, b"echo:" + payload)
100
+
101
+ # 6. Clean shutdown
102
+ await slim.delete_session(session)
103
+ await slim.stop_server("127.0.0.1:40000")
104
+
105
+ asyncio.run(main())
106
+ ```
107
+
108
+ ### 3. Outbound Session (PointToPoint)
109
+
110
+ ```python
111
+ remote = slim_bindings.PyName("org", "namespace", "peer")
112
+ session = await slim.create_session(
113
+ slim_bindings.PySessionConfiguration.PointToPoint(
114
+ peer_name=remote,
115
+ mls_enabled=True,
116
+ metadata={"trace_id": "abc123"},
117
+ )
118
+ )
119
+ await slim.set_route(remote)
120
+ await session.publish(b"hello")
121
+ ctx, reply = await session.get_message()
122
+ print("Reply:", reply)
123
+ await slim.delete_session(session)
124
+ ```
125
+
126
+ ---
127
+
128
+ ## Tracing / Observability
129
+
130
+ Initialize tracing (optionally enabling OpenTelemetry export):
131
+
132
+ ```python
133
+ await slim_bindings.init_tracing({
134
+ "log_level": "info",
135
+ "opentelemetry": {
136
+ "enabled": True,
137
+ "grpc": {"endpoint": "http://localhost:4317"}
138
+ }
139
+ })
140
+ ```
141
+
142
+ ---
143
+
144
+ ## Installation
145
+
146
+ ```bash
147
+ pip install slim-bindings
148
+ ```
149
+
150
+ ---
151
+
152
+ ## Include as Dependency
153
+
154
+ ### With `pyproject.toml`
155
+
156
+ ```toml
157
+ [project]
158
+ name = "slim-example"
159
+ version = "0.1.0"
160
+ description = "Python program using SLIM"
161
+ requires-python = ">=3.9"
162
+ dependencies = [
163
+ "slim-bindings>=0.6.0"
164
+ ]
165
+ ```
166
+
167
+ ### With Poetry
168
+
169
+ ```toml
170
+ [tool.poetry]
171
+ name = "slim-example"
172
+ version = "0.1.0"
173
+ description = "Python program using SLIM"
174
+
175
+ [tool.poetry.dependencies]
176
+ python = ">=3.9,<3.14"
177
+ slim-bindings = ">=0.5.0"
178
+ ```
179
+
180
+ ---
181
+
182
+ ## Feature Highlights
183
+
184
+ | Area | Capability |
185
+ |-----------------|------------|
186
+ | Server | `run_server`, `stop_server` |
187
+ | Client | `connect`, `disconnect`, automatic subscribe to local name |
188
+ | Routing | `set_route`, `remove_route` |
189
+ | Subscriptions | `subscribe`, `unsubscribe` |
190
+ | Sessions | `create_session`, `listen_for_session`, `delete_session`, `set_session_config` |
191
+ | Messaging | `publish`, `publish_to`, `get_message` |
192
+ | Identity | Shared secret, static JWT, dynamic JWT signing, JWT verification (public key / JWKS) |
193
+ | Tracing | Structured logs & optional OpenTelemetry export |
194
+
195
+ ---
196
+
197
+ ## Example Programs
198
+
199
+ Complete runnable examples (point2point, group, server) live in the repository:
200
+
201
+ https://github.com/agntcy/slim/tree/slim-v0.5.0/data-plane/python/bindings/examples
202
+
203
+ You can install and invoke them (after building) via:
204
+
205
+ ```bash
206
+ slim-bindings-examples point2point ...
207
+ slim-bindings-examples group ...
208
+ slim-bindings-examples slim ...
209
+ ```
210
+
211
+ ---
212
+
213
+ ## When to Use Each Session Type
214
+
215
+ | Use Case | Recommended Type |
216
+ |----------------------------------|-------------------|
217
+ | Stable peer workflow / stateful | Point2Point |
218
+ | Group chat / fan-out | Group |
219
+
220
+ ---
221
+
222
+ ## Security Notes
223
+
224
+ - Prefer asymmetric JWT-based identity in production.
225
+ - Rotate keys periodically and enable `require_iss`, `require_aud`, `require_sub`.
226
+ - Shared secret is only suitable for local tests and prototypes.
227
+
228
+ ---
229
+
230
+ ## License
231
+
232
+ Apache-2.0 (see repository for full license text).
233
+