Skip to content

feat(xrpc-server): add bounded streaming procedures - #25

Merged
ewanc26 merged 8 commits into
mainfrom
feat/streaming-procedures
Aug 24, 2026
Merged

feat(xrpc-server): add bounded streaming procedures#25
ewanc26 merged 8 commits into
mainfrom
feat/streaming-procedures

Conversation

@ewanc26

@ewanc26 ewanc26 commented Aug 24, 2026

Copy link
Copy Markdown
Owner

Summary

  • add authenticated bounded-memory streaming procedure handlers to the XRPC server
  • preserve shim request metadata across multi-chunk POSTs and wake blocked sockets during shutdown
  • expose incremental raw CID hashing for large blob producers
  • declare the shim's existing thread-pool option and align README/module/roadmap metadata

Reference alignment

Compared against the current bluesky-social/atproto lexicons and the public Indigo implementation. The multipart video contract is currently defined by the official lexicons; the public reference PDS and Indigo do not yet expose an equivalent multipart server implementation.

Verification

  • existing XRPC server round-trip and rate-limit regression tests pass
  • new 1 MiB streamed-procedure, exact Content-Length, and interrupted-socket tests pass
  • C23 syntax checks and git diff --check pass
  • incremental CID hashing is exercised by MetalBear's multipart assembly tests

CMake is unavailable in the development sandbox, so the server sources/tests were compiled and linked directly against the existing Wolfram/cJSON build artifacts.

ewanc26 and others added 5 commits August 24, 2026 11:15
Keep parsed request metadata out of the body receive buffer and wake both the listener and accepted sockets during shutdown. This prevents multi-chunk POST routing corruption and teardown hangs after interrupted uploads.

Co-authored-by: Codex <noreply@openai.com>
Add an authenticated, rate-limited streaming procedure lifecycle that exposes Content-Length and query parameters without buffering the body. Ensure cleanup runs after completion and peer disconnects, and cover bounded chunk delivery, length rejection, and interrupted uploads.

Co-authored-by: Codex <noreply@openai.com>
Expose a single-use opaque hasher so large blob producers can compute canonical raw CIDs without buffering complete payloads or depending on OpenSSL internals.

Co-authored-by: Codex <codex@openai.com>
Align the feature list and module status with the streaming procedure lifecycle, incremental CID API, and current multipart video lexicons now present in the codebase.

Co-authored-by: Codex <codex@openai.com>
Keep the compatibility header in sync with the shim's varargs parser so clean server builds can configure worker pools without relying on an undeclared libmicrohttpd constant.

Co-authored-by: Codex <codex@openai.com>
ewanc26 and others added 3 commits August 24, 2026 11:29
Co-authored-by: Codex <codex@openai.com>
Co-authored-by: Codex <codex@openai.com>
Co-authored-by: Codex <codex@openai.com>
@ewanc26
ewanc26 merged commit 1dca4cc into main Aug 24, 2026
6 checks passed
@ewanc26
ewanc26 deleted the feat/streaming-procedures branch August 24, 2026 15:48
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.

1 participant