mirror of
https://github.com/element-hq/synapse.git
synced 2026-11-04 15:37:49 +00:00
Add the `experimental_features.rust_federation_sending` level, `off` or `client` for now. At `client`, `MatrixFederationHttpClient` sends its JSON requests (`put_json`, `post_json`, `get_json`, `get_json_with_headers`, `delete_json`, `send_direct_request`) through the Rust client. Media downloads, and an instance that sends through a proxy worker, stay on the Python path. The facade keeps the tracing span around the call and injects its headers. The request and response counters are bumped from the GIL hop that returns the result. The limiter's background write is factored out of `RetryDestinationLimiter` so both paths share it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01R5b7Ruy4cgt27Mjq6Ptxbb