Skip to content

Rename "proxy" to "relay" throughout the project#133

Open
abergs wants to merge 1 commit into
mainfrom
proxy-relay-rename
Open

Rename "proxy" to "relay" throughout the project#133
abergs wants to merge 1 commit into
mainfrom
proxy-relay-rename

Conversation

@abergs
Copy link
Copy Markdown
Member

@abergs abergs commented May 8, 2026

The zero-knowledge WebSocket server is more accurately a relay than a proxy.

I'd also like to avoid using the word "proxy" since in this problem domain, there are many client side proxies.

Crate renames (workspace version bumped 0.11.0 -> 0.12.0):

  • ap-proxy -> ap-relay
  • ap-proxy-client -> ap-relay-client
  • ap-proxy-protocol -> ap-relay-protocol

Binary, types, and modules:

  • bin ap-proxy -> ap-relay
  • ProxyServer -> RelayServer
  • ProxyClient (trait) -> RelayClient
  • DefaultProxyClient -> DefaultRelayClient
  • ProxyProtocolClient -> RelayProtocolClient
  • ProxyClientConfig -> RelayClientConfig
  • ProxyError -> RelayError
  • ClientError::ProxyAuthFailed -> RelayAuthFailed
  • src/proxy.rs -> src/relay.rs
  • server/proxy_server.rs -> server/relay_server.rs
  • tests/websocket_proxy.rs -> tests/websocket_relay.rs
  • js-wasm proxy_client.rs -> relay_client.rs

User-facing surface:

  • CLI flag --proxy-url -> --relay-url, DEFAULT_PROXY_URL -> DEFAULT_RELAY_URL
  • Log/help strings, example bindings (Python, Swift, JS) updated
  • protocol-v0.md, README, CONTRIBUTING, CLAUDE.md, release.yml updated

Breaking change for API consumers and crates.io: old crate names stay stale; downstream callers of ProxyClient/ProxyError/--proxy-url must update. The wire-protocol Messages enum is unchanged.

Please note that ap-relay is busy on crates.io, so if we want to publish the server on crates (we don't need to!) we need to find a different name.

🎟️ Tracking

📔 Objective

📸 Screenshots

⏰ Reminders before review

  • Contributor guidelines followed
  • All formatters and local linters executed and passed
  • Written new unit and / or integration tests where applicable
  • Protected functional changes with optionality (feature flags)
  • Used internationalization (i18n) for all UI strings
  • CI builds passed
  • Communicated to DevOps any deployment requirements
  • Updated any necessary documentation (Confluence, contributing docs) or informed the documentation team

🦮 Reviewer guidelines

  • 👍 (:+1:) or similar for great changes
  • 📝 (:memo:) or ℹ️ (:information_source:) for notes or general info
  • ❓ (:question:) for questions
  • 🤔 (:thinking:) or 💭 (:thought_balloon:) for more open inquiry that's not quite a confirmed issue and could potentially benefit from discussion
  • 🎨 (:art:) for suggestions / improvements
  • ❌ (:x:) or ⚠️ (:warning:) for more significant problems or concerns needing attention
  • 🌱 (:seedling:) or ♻️ (:recycle:) for future improvements or indications of technical debt
  • ⛏ (:pick:) for minor or nitpick changes

The zero-knowledge WebSocket server is more accurately a relay than a
proxy: it routes opaque ciphertext between authenticated peers without
inspecting payloads. This rename aligns crate, type, and user-facing
terminology with that role.

Crate renames (workspace version bumped 0.11.0 -> 0.12.0):
- ap-proxy           -> ap-relay
- ap-proxy-client    -> ap-relay-client
- ap-proxy-protocol  -> ap-relay-protocol

Binary, types, and modules:
- bin ap-proxy             -> ap-relay
- ProxyServer              -> RelayServer
- ProxyClient (trait)      -> RelayClient
- DefaultProxyClient       -> DefaultRelayClient
- ProxyProtocolClient      -> RelayProtocolClient
- ProxyClientConfig        -> RelayClientConfig
- ProxyError               -> RelayError
- ClientError::ProxyAuthFailed -> RelayAuthFailed
- src/proxy.rs             -> src/relay.rs
- server/proxy_server.rs   -> server/relay_server.rs
- tests/websocket_proxy.rs -> tests/websocket_relay.rs
- js-wasm proxy_client.rs  -> relay_client.rs

User-facing surface:
- CLI flag --proxy-url -> --relay-url, DEFAULT_PROXY_URL -> DEFAULT_RELAY_URL
- Log/help strings, example bindings (Python, Swift, JS) updated
- protocol-v0.md, README, CONTRIBUTING, CLAUDE.md, release.yml updated

Breaking change for API consumers and crates.io: old crate names stay
stale; downstream callers of ProxyClient/ProxyError/--proxy-url must
update. The wire-protocol Messages enum is unchanged.
@abergs abergs requested a review from a team May 12, 2026 15:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants