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.
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/Cargo.lock +26 -46
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/Cargo.toml +12 -12
- slim_bindings-0.6.0/PKG-INFO +233 -0
- slim_bindings-0.6.0/README.md +213 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/auth/CHANGELOG.md +21 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/auth/Cargo.toml +2 -2
- slim_bindings-0.6.0/core/auth/src/auth_provider.rs +514 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/auth/src/builder.rs +1 -1
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/auth/src/jwt.rs +13 -11
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/auth/src/jwt_middleware.rs +7 -7
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/auth/src/lib.rs +1 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/auth/src/resolver.rs +18 -36
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/auth/src/shared_secret.rs +0 -3
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/auth/src/testutils.rs +0 -13
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/CHANGELOG.md +30 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/Cargo.toml +3 -3
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/auth/basic.rs +2 -2
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/auth/jwt.rs +190 -75
- slim_bindings-0.6.0/core/config/src/auth/static_jwt.rs +184 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/auth.rs +1 -1
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/component/id.rs +3 -3
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/grpc/client.rs +158 -47
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/grpc/server.rs +136 -64
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/lib.rs +1 -0
- slim_bindings-0.6.0/core/config/src/metadata.rs +263 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/opaque.rs +1 -1
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/tls/common.rs +73 -28
- slim_bindings-0.6.0/core/config/src/tls/provider.rs +184 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/tls/server.rs +21 -16
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/tls.rs +1 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/tests/e2e.rs +69 -9
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/controller/CHANGELOG.md +25 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/controller/Cargo.toml +6 -1
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/controller/proto/v1/controller.proto +44 -28
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/controller/src/api/gen/controller.proto.v1.rs +51 -30
- slim_bindings-0.6.0/core/controller/src/config.rs +631 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/controller/src/service.rs +604 -84
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/CHANGELOG.md +28 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/Cargo.toml +1 -1
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/README.md +1 -1
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/build.rs +1 -1
- slim_bindings-0.6.0/core/datapath/proto/v1/data-plane.proto +127 -0
- 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
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/src/api/proto.rs +2 -2
- slim_bindings-0.6.0/core/datapath/src/api.rs +22 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/src/connection.rs +1 -1
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/src/message_processing.rs +9 -8
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/src/messages/encoder.rs +4 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/src/messages/utils.rs +143 -24
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/src/tables/subscription_table.rs +23 -16
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/tests/data_path_test.rs +2 -2
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/mls/CHANGELOG.md +16 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/mls/Cargo.toml +1 -1
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/service/CHANGELOG.md +46 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/service/Cargo.toml +2 -1
- slim_bindings-0.6.0/core/service/src/app.rs +603 -0
- slim_bindings-0.6.0/core/service/src/errors.rs +48 -0
- slim_bindings-0.6.0/core/service/src/lib.rs +21 -0
- slim_bindings-0.4.1/core/service/src/lib.rs → slim_bindings-0.6.0/core/service/src/service.rs +108 -128
- {slim_bindings-0.4.1/core/service/src → slim_bindings-0.6.0/core/service/src/session}/channel_endpoint.rs +369 -69
- slim_bindings-0.6.0/core/service/src/session/common.rs +37 -0
- slim_bindings-0.6.0/core/service/src/session/config.rs +110 -0
- slim_bindings-0.6.0/core/service/src/session/context.rs +285 -0
- {slim_bindings-0.4.1/core/service/src → slim_bindings-0.6.0/core/service/src/session}/errors.rs +7 -45
- slim_bindings-0.6.0/core/service/src/session/handle.rs +1008 -0
- {slim_bindings-0.4.1/core/service/src → slim_bindings-0.6.0/core/service/src/session}/interceptor.rs +4 -3
- {slim_bindings-0.4.1/core/service/src → slim_bindings-0.6.0/core/service/src/session}/interceptor_mls.rs +19 -13
- {slim_bindings-0.4.1/core/service/src → slim_bindings-0.6.0/core/service/src/session}/moderator_task.rs +3 -1
- slim_bindings-0.4.1/core/service/src/streaming.rs → slim_bindings-0.6.0/core/service/src/session/multicast.rs +351 -400
- slim_bindings-0.6.0/core/service/src/session/notification.rs +26 -0
- 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
- {slim_bindings-0.4.1/core/service/src → slim_bindings-0.6.0/core/service/src/session}/producer_buffer.rs +20 -6
- {slim_bindings-0.4.1/core/service/src → slim_bindings-0.6.0/core/service/src/session}/receiver_buffer.rs +98 -15
- slim_bindings-0.6.0/core/service/src/session/session_layer.rs +629 -0
- {slim_bindings-0.4.1/core/service/src → slim_bindings-0.6.0/core/service/src/session}/timer.rs +6 -3
- slim_bindings-0.6.0/core/service/src/session/traits.rs +102 -0
- slim_bindings-0.6.0/core/service/src/session/transmitter.rs +317 -0
- slim_bindings-0.6.0/core/service/src/session.rs +55 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/tracing/CHANGELOG.md +12 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/tracing/Cargo.toml +1 -1
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/tracing/src/lib.rs +9 -8
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/pyproject.toml +5 -7
- {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/CHANGELOG.md +37 -1
- slim_bindings-0.6.0/python/bindings/README.md +213 -0
- slim_bindings-0.6.0/python/bindings/SESSION.md +353 -0
- slim_bindings-0.6.0/python/bindings/Taskfile.yaml +92 -0
- {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/examples/CHANGELOG.md +12 -0
- {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/examples/Dockerfile +10 -5
- slim_bindings-0.6.0/python/bindings/examples/README.md +486 -0
- slim_bindings-0.6.0/python/bindings/examples/Taskfile.yaml +100 -0
- {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/examples/pyproject.toml +4 -6
- slim_bindings-0.6.0/python/bindings/examples/src/slim_bindings_examples/README_group.md +214 -0
- slim_bindings-0.6.0/python/bindings/examples/src/slim_bindings_examples/README_point_to_point.md +182 -0
- slim_bindings-0.6.0/python/bindings/examples/src/slim_bindings_examples/__init__.py +76 -0
- slim_bindings-0.6.0/python/bindings/examples/src/slim_bindings_examples/common.py +384 -0
- slim_bindings-0.6.0/python/bindings/examples/src/slim_bindings_examples/group.py +295 -0
- slim_bindings-0.6.0/python/bindings/examples/src/slim_bindings_examples/point_to_point.py +229 -0
- slim_bindings-0.6.0/python/bindings/examples/src/slim_bindings_examples/slim.py +154 -0
- slim_bindings-0.6.0/python/bindings/slim_bindings/__init__.py +77 -0
- slim_bindings-0.6.0/python/bindings/slim_bindings/_slim_bindings.pyi +476 -0
- slim_bindings-0.6.0/python/bindings/slim_bindings/errors.py +53 -0
- slim_bindings-0.6.0/python/bindings/slim_bindings/session.py +219 -0
- slim_bindings-0.6.0/python/bindings/slim_bindings/slim.py +383 -0
- slim_bindings-0.6.0/python/bindings/slim_bindings/version.py +38 -0
- {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/src/lib.rs +12 -4
- {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/src/pyidentity.rs +233 -0
- slim_bindings-0.6.0/python/bindings/src/pymessage.rs +117 -0
- {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/src/pyservice.rs +231 -186
- slim_bindings-0.6.0/python/bindings/src/pysession.rs +407 -0
- {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/src/utils.rs +8 -9
- slim_bindings-0.6.0/python/bindings/tests/common.py +58 -0
- slim_bindings-0.6.0/python/bindings/tests/conftest.py +78 -0
- slim_bindings-0.6.0/python/bindings/tests/test_bindings.py +486 -0
- slim_bindings-0.6.0/python/bindings/tests/test_identity.py +203 -0
- slim_bindings-0.6.0/python/bindings/tests/test_multicast.py +233 -0
- slim_bindings-0.6.0/python/bindings/tests/test_point_to_point.py +176 -0
- slim_bindings-0.6.0/python/bindings/tests/test_session_metadata.py +80 -0
- slim_bindings-0.6.0/python/bindings/uv.lock +455 -0
- slim_bindings-0.6.0/slim_bindings/__init__.py +77 -0
- slim_bindings-0.6.0/slim_bindings/_slim_bindings.pyi +476 -0
- slim_bindings-0.6.0/slim_bindings/errors.py +53 -0
- slim_bindings-0.6.0/slim_bindings/session.py +219 -0
- slim_bindings-0.6.0/slim_bindings/slim.py +383 -0
- slim_bindings-0.6.0/slim_bindings/version.py +38 -0
- slim_bindings-0.4.1/PKG-INFO +0 -61
- slim_bindings-0.4.1/README.md +0 -41
- slim_bindings-0.4.1/core/config/src/auth/bearer.rs +0 -95
- slim_bindings-0.4.1/core/controller/src/config.rs +0 -83
- slim_bindings-0.4.1/core/datapath/proto/v1/pubsub.proto +0 -114
- slim_bindings-0.4.1/core/datapath/src/api.rs +0 -22
- slim_bindings-0.4.1/core/service/src/app.rs +0 -1224
- slim_bindings-0.4.1/core/service/src/session.rs +0 -591
- slim_bindings-0.4.1/core/service/src/testutils.rs +0 -70
- slim_bindings-0.4.1/core/service/src/transmitter.rs +0 -105
- slim_bindings-0.4.1/python-bindings/README.md +0 -41
- slim_bindings-0.4.1/python-bindings/Taskfile.yml +0 -229
- slim_bindings-0.4.1/python-bindings/WINDOWS.md +0 -109
- slim_bindings-0.4.1/python-bindings/examples/src/slim_bindings_examples/__init__.py +0 -47
- slim_bindings-0.4.1/python-bindings/examples/src/slim_bindings_examples/common.py +0 -259
- slim_bindings-0.4.1/python-bindings/examples/src/slim_bindings_examples/fire_and_forget.py +0 -201
- slim_bindings-0.4.1/python-bindings/examples/src/slim_bindings_examples/pubsub.py +0 -150
- slim_bindings-0.4.1/python-bindings/examples/src/slim_bindings_examples/request_reply.py +0 -182
- slim_bindings-0.4.1/python-bindings/examples/src/slim_bindings_examples/slim.py +0 -87
- slim_bindings-0.4.1/python-bindings/slim_bindings/__init__.py +0 -712
- slim_bindings-0.4.1/python-bindings/slim_bindings/_slim_bindings.pyi +0 -161
- slim_bindings-0.4.1/python-bindings/slima2a/README.md +0 -52
- slim_bindings-0.4.1/python-bindings/slima2a/Taskfile.yaml +0 -11
- slim_bindings-0.4.1/python-bindings/slima2a/buf.gen.yaml +0 -22
- slim_bindings-0.4.1/python-bindings/slima2a/examples/echo_agent/README.md +0 -19
- slim_bindings-0.4.1/python-bindings/slima2a/examples/echo_agent/__init__.py +0 -0
- slim_bindings-0.4.1/python-bindings/slima2a/examples/echo_agent/client.py +0 -184
- slim_bindings-0.4.1/python-bindings/slima2a/examples/echo_agent/echo_agent.py +0 -3
- slim_bindings-0.4.1/python-bindings/slima2a/examples/echo_agent/echo_agent_executor.py +0 -43
- slim_bindings-0.4.1/python-bindings/slima2a/examples/echo_agent/server.py +0 -93
- slim_bindings-0.4.1/python-bindings/slima2a/examples/travel_planner_agent/README.md +0 -55
- slim_bindings-0.4.1/python-bindings/slima2a/examples/travel_planner_agent/__init__.py +0 -0
- slim_bindings-0.4.1/python-bindings/slima2a/examples/travel_planner_agent/agent.py +0 -88
- slim_bindings-0.4.1/python-bindings/slima2a/examples/travel_planner_agent/agent_executor.py +0 -54
- slim_bindings-0.4.1/python-bindings/slima2a/examples/travel_planner_agent/client.py +0 -107
- slim_bindings-0.4.1/python-bindings/slima2a/examples/travel_planner_agent/config.json +0 -8
- slim_bindings-0.4.1/python-bindings/slima2a/examples/travel_planner_agent/server.py +0 -68
- slim_bindings-0.4.1/python-bindings/slima2a/pyproject.toml +0 -33
- slim_bindings-0.4.1/python-bindings/slima2a/slima2a/__init__.py +0 -0
- slim_bindings-0.4.1/python-bindings/slima2a/slima2a/client_transport.py +0 -202
- slim_bindings-0.4.1/python-bindings/slima2a/slima2a/handler.py +0 -370
- slim_bindings-0.4.1/python-bindings/slima2a/slima2a/py.typed +0 -0
- slim_bindings-0.4.1/python-bindings/slima2a/slima2a/types/__init__.py +0 -0
- slim_bindings-0.4.1/python-bindings/slima2a/slima2a/types/a2a_pb2_srpc.py +0 -189
- slim_bindings-0.4.1/python-bindings/src/pysession.rs +0 -208
- slim_bindings-0.4.1/python-bindings/srpc/README.md +0 -5
- slim_bindings-0.4.1/python-bindings/srpc/pyproject.toml +0 -43
- slim_bindings-0.4.1/python-bindings/srpc/srpc/__init__.py +0 -29
- slim_bindings-0.4.1/python-bindings/srpc/srpc/channel.py +0 -364
- slim_bindings-0.4.1/python-bindings/srpc/srpc/common.py +0 -200
- slim_bindings-0.4.1/python-bindings/srpc/srpc/context.py +0 -32
- slim_bindings-0.4.1/python-bindings/srpc/srpc/examples/simple/buf.gen.yaml +0 -21
- slim_bindings-0.4.1/python-bindings/srpc/srpc/examples/simple/client.py +0 -60
- slim_bindings-0.4.1/python-bindings/srpc/srpc/examples/simple/example.proto +0 -20
- slim_bindings-0.4.1/python-bindings/srpc/srpc/examples/simple/server.py +0 -102
- slim_bindings-0.4.1/python-bindings/srpc/srpc/examples/simple/types/example_pb2.py +0 -41
- slim_bindings-0.4.1/python-bindings/srpc/srpc/examples/simple/types/example_pb2.pyi +0 -21
- slim_bindings-0.4.1/python-bindings/srpc/srpc/examples/simple/types/example_pb2_srpc.py +0 -98
- slim_bindings-0.4.1/python-bindings/srpc/srpc/py.typed +0 -0
- slim_bindings-0.4.1/python-bindings/srpc/srpc/rpc.py +0 -90
- slim_bindings-0.4.1/python-bindings/srpc/srpc/server.py +0 -242
- slim_bindings-0.4.1/python-bindings/tests/common.py +0 -24
- slim_bindings-0.4.1/python-bindings/tests/conftest.py +0 -39
- slim_bindings-0.4.1/python-bindings/tests/test_bindings.py +0 -366
- slim_bindings-0.4.1/python-bindings/tests/test_fire_forget.py +0 -99
- slim_bindings-0.4.1/python-bindings/tests/test_identity.py +0 -168
- slim_bindings-0.4.1/python-bindings/tests/test_pubsub.py +0 -161
- slim_bindings-0.4.1/python-bindings/tests/test_request_reply.py +0 -94
- slim_bindings-0.4.1/python-bindings/tests/test_streaming.py +0 -149
- slim_bindings-0.4.1/python-bindings/uv.lock +0 -1651
- slim_bindings-0.4.1/slim_bindings/__init__.py +0 -712
- slim_bindings-0.4.1/slim_bindings/_slim_bindings.pyi +0 -161
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/auth/README.md +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/auth/src/errors.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/auth/src/file_watcher.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/auth/src/traits.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/README.md +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/build.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/proto/hello.proto +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/component/configuration.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/component.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/grpc/compression.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/grpc/errors.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/grpc/headers_middleware.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/grpc/helloworld.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/grpc/proxy.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/grpc/schema/client-config.schema.json +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/grpc/schema/generate_schema.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/grpc.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/provider/env.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/provider/file.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/provider/lib.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/provider.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/testutils/helloworld.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/testutils/tower_service.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/testutils.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/src/tls/client.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/grpc/ca.crt +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/grpc/server.crt +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/grpc/server.key +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/jwt/ec256-public.pem +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/jwt/ec256-wrong.pem +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/jwt/ec256.pem +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/jwt/ec384-public.pem +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/jwt/ec384-wrong.pem +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/jwt/ec384.pem +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/jwt/eddsa-public.pem +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/jwt/eddsa-wrong.pem +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/jwt/eddsa.pem +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/jwt/rsa-public.pem +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/jwt/rsa-wrong.pem +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/jwt/rsa.pem +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/testfile +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/tls/ca-1.crt +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/tls/ca-2.crt +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/tls/ca-bad.crt +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/tls/client-1.crt +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/tls/client-1.key +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/tls/client-2.crt +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/tls/client-2.key +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/tls/server-1.crt +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/tls/server-1.key +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/tls/server-2.crt +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/testdata/tls/server-2.key +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/config/tests/tls.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/controller/README.md +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/controller/build.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/controller/src/api/proto.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/controller/src/api.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/controller/src/errors.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/controller/src/lib.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/benches/pool_benchmark.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/src/errors.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/src/forwarder.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/src/lib.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/src/messages.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/src/tables/connection_table.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/src/tables/errors.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/src/tables/pool.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/src/tables/remote_subscription_table.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/datapath/src/tables.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/mls/README.md +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/mls/src/errors.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/mls/src/identity_provider.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/mls/src/lib.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/mls/src/mls.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/service/README.md +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/signal/CHANGELOG.md +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/signal/Cargo.toml +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/signal/README.md +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/signal/src/lib.rs +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/tracing/README.md +0 -0
- {slim_bindings-0.4.1 → slim_bindings-0.6.0}/core/tracing/src/utils.rs +0 -0
- {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/BUILD.md +0 -0
- {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/Cargo.toml +0 -0
- {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/build.rs +0 -0
- {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/src/bin/stub_gen.rs +0 -0
- {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/src/build_info.rs +0 -0
- {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/tests/testdata/ec256-public.pem +0 -0
- {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/tests/testdata/ec256.pem +0 -0
- {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/tests/testdata/ec384-public.pem +0 -0
- {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/tests/testdata/ec384.pem +0 -0
- {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/tests/testdata/eddsa-public.pem +0 -0
- {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/tests/testdata/eddsa.pem +0 -0
- {slim_bindings-0.4.1/python-bindings → slim_bindings-0.6.0/python/bindings}/tests/testdata/rsa-public.pem +0 -0
- {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-
|
|
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.
|
|
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-
|
|
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.
|
|
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.
|
|
105
|
+
version = "0.4.0"
|
|
105
106
|
dependencies = [
|
|
106
107
|
"agntcy-slim-auth",
|
|
107
108
|
"base64 0.22.1",
|
|
108
109
|
"drain",
|
|
109
|
-
"duration-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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-
|
|
1027
|
-
version = "0.
|
|
1027
|
+
name = "duration-string"
|
|
1028
|
+
version = "0.5.3"
|
|
1028
1029
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1029
|
-
checksum = "
|
|
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
|
|
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
|
|
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
|
-
"
|
|
13
|
+
"slimrpc-compiler",
|
|
14
14
|
"examples",
|
|
15
15
|
"testing",
|
|
16
16
|
]
|
|
17
17
|
|
|
18
|
-
exclude = ["integrations/mcp
|
|
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.
|
|
25
|
-
agntcy-slim-auth = { path = "core/auth", version = "0.
|
|
26
|
-
agntcy-slim-config = { path = "core/config", version = "0.
|
|
27
|
-
agntcy-slim-controller = { path = "core/controller", version = "0.
|
|
28
|
-
agntcy-slim-datapath = { path = "core/datapath", version = "0.
|
|
29
|
-
agntcy-slim-mls = { path = "core/mls", version = "0.1.
|
|
30
|
-
agntcy-slim-service = { path = "core/service", version = "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.
|
|
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-
|
|
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
|
+
|