npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@tigrbljs/tigr-asgi-contract-artifacts

v0.3.5-dev8

Published

Canonical npm artifact package for the Tigr ASGI contract. This package ships the source artifacts that drive the downstream contract packages.

Readme

@tigrbljs/tigr-asgi-contract-artifacts

Canonical npm artifact package for the Tigr ASGI contract. This package ships the source artifacts that drive the downstream contract packages.

Artifact Package Matrix

| Ecosystem | Package | Version | Path | Surface files | Notes | | --- | --- | --- | --- | --- | --- | | python | tigr-asgi-contract-artifacts | 0.3.5-dev8 | packages/artifacts-py | 1 | Vendored file accessors | | npm | @tigrbljs/tigr-asgi-contract-artifacts | 0.3.5-dev8 | packages/artifacts-npm | 4 | Packaged artifact exports | | rust | tigr_asgi_contract_artifacts_rs | 0.3.5-dev8 | packages/artifacts-rs | 1 | Embedded artifact accessors |

Artifact Inventory Matrix

| Artifact path | Category | SHA-256 | | --- | --- | --- | | automata.yaml | registry | 1efccd18b44f | | bindings.yaml | registry | 0a08946ef696 | | capabilities.yaml | registry | 8ca0167eccbc | | channels.yaml | registry | 66a6a3b36551 | | compatibility.yaml | registry | 9a95660a96e8 | | completion.yaml | registry | a1b38e52c5e8 | | directions.yaml | registry | 5b3e8f536f80 | | event_classification.yaml | registry | fbfe4cc8e0eb | | exchanges.yaml | registry | efc32610dfb1 | | extensions.yaml | registry | 7da670b74348 | | families.yaml | registry | e8a62db0c0ff | | frames.yaml | registry | 20460c3307c9 | | framing.yaml | registry | d7e90674cfa9 | | ids.yaml | registry | aec52c6b3ef7 | | legality/binding_family.yaml | legality | eaf47e7fefc2 | | legality/binding_subevent.yaml | legality | 1126c019c67d | | legality/family_subevent.yaml | legality | 4aa82e7da8bd | | protocols.yaml | registry | c56512c06918 | | schemas/automata.schema.json | schema | 651e4d388282 | | schemas/bindings.schema.json | schema | dbc22d80846b | | schemas/capabilities.schema.json | schema | 93c9734265ef | | schemas/compatibility.schema.json | schema | 309ba3093d34 | | schemas/completion.schema.json | schema | 26e6082df0cd | | schemas/event.schema.json | schema | 5b6bcbe8e53a | | schemas/events/http.disconnect.schema.json | schema | c8e0ef15a51a | | schemas/events/http.request.schema.json | schema | 5dc3e9637842 | | schemas/events/http.response.body.schema.json | schema | aea43c0ae295 | | schemas/events/http.response.pathsend.schema.json | schema | 93e5ccb15358 | | schemas/events/http.response.start.schema.json | schema | e12dd07d4486 | | schemas/events/lifespan.shutdown.complete.schema.json | schema | a7dab0910c2c | | schemas/events/lifespan.shutdown.failed.schema.json | schema | 40a49256ac6e | | schemas/events/lifespan.shutdown.schema.json | schema | 6eda511d8920 | | schemas/events/lifespan.startup.complete.schema.json | schema | f7802854affa | | schemas/events/lifespan.startup.failed.schema.json | schema | 0de2facf072d | | schemas/events/lifespan.startup.schema.json | schema | 77cea05772ad | | schemas/events/stream.resume.accept.schema.json | schema | 0a601bcc0345 | | schemas/events/stream.resume.reject.schema.json | schema | 05b65ef2c460 | | schemas/events/stream.resume.request.schema.json | schema | 9afe3c7aca79 | | schemas/events/transport.emit.complete.schema.json | schema | 154aad5d68c0 | | schemas/events/transport.emit.failed.schema.json | schema | d501f202757c | | schemas/events/websocket.accept.schema.json | schema | eb7eceeb6aeb | | schemas/events/websocket.close.schema.json | schema | 1b093c67bdc8 | | schemas/events/websocket.connect.schema.json | schema | de9333a842b2 | | schemas/events/websocket.disconnect.schema.json | schema | 344950c6fbb3 | | schemas/events/websocket.receive.schema.json | schema | 2934a40b9c7b | | schemas/events/websocket.send.schema.json | schema | c39fa047b2d5 | | schemas/events/webtransport.accept.schema.json | schema | d11fae8fbca5 | | schemas/events/webtransport.close.schema.json | schema | efd59a3d1c08 | | schemas/events/webtransport.connect.schema.json | schema | 8faa5332a687 | | schemas/events/webtransport.datagram.receive.schema.json | schema | 36318243e42d | | schemas/events/webtransport.datagram.send.schema.json | schema | 5e5bb8220d54 | | schemas/events/webtransport.disconnect.schema.json | schema | 8df0b9ea2978 | | schemas/events/webtransport.stream.close.schema.json | schema | cbe00704dba3 | | schemas/events/webtransport.stream.receive.schema.json | schema | dd20d55fe0da | | schemas/events/webtransport.stream.reset.schema.json | schema | fc21cb3b6a0f | | schemas/events/webtransport.stream.send.schema.json | schema | 056fcd815163 | | schemas/events/webtransport.stream.stop_sending.schema.json | schema | 9504fa51a954 | | schemas/exchanges.schema.json | schema | 45134196417e | | schemas/extensions.schema.json | schema | 132fed861e37 | | schemas/families.schema.json | schema | fcf4059df66f | | schemas/frames/app.schema.json | schema | 41c2aed3a67a | | schemas/frames/asgi-pathsend-extension.schema.json | schema | 2b87939ce375 | | schemas/frames/asgi-tls-extension.schema.json | schema | d68a6b4f8dda | | schemas/frames/bytes.schema.json | schema | 755296a01d67 | | schemas/frames/grpc.schema.json | schema | 8c6b359506a9 | | schemas/frames/http-1-1-message.schema.json | schema | 11984505830d | | schemas/frames/http-request-body-chunk.schema.json | schema | 8fa1b4990502 | | schemas/frames/http-response-body-chunk.schema.json | schema | b98ba92c69c8 | | schemas/frames/http-response-start-frame.schema.json | schema | dc7632c80201 | | schemas/frames/json-rpc-error-object.schema.json | schema | 33f576f0afe1 | | schemas/frames/json-rpc-notification-object.schema.json | schema | 10cec03e763c | | schemas/frames/json-rpc-request-object.schema.json | schema | 205faf614cbb | | schemas/frames/json-rpc-response-object.schema.json | schema | d250c3d711f7 | | schemas/frames/json.schema.json | schema | 85f41ceb9bdf | | schemas/frames/jsonrpc.schema.json | schema | c8ae981b8f73 | | schemas/frames/raw.schema.json | schema | 4cee0c0d124c | | schemas/frames/sse-data-field.schema.json | schema | c10f41a57e0e | | schemas/frames/sse-event-field.schema.json | schema | a41698829ec9 | | schemas/frames/sse-id-field.schema.json | schema | 7d6c646de271 | | schemas/frames/sse-retry-field.schema.json | schema | 503420c3cc76 | | schemas/frames/sse.schema.json | schema | e8ad591bece0 | | schemas/frames/websocket-accept-frame.schema.json | schema | ea02b67caae0 | | schemas/frames/websocket-close-frame.schema.json | schema | 0585472ded8e | | schemas/frames/websocket-continuation-frame.schema.json | schema | 2517b16b8191 | | schemas/frames/websocket-disconnect-frame.schema.json | schema | 561867894530 | | schemas/frames/websocket-frame.schema.json | schema | 604039e37393 | | schemas/frames/websocket-ping-frame.schema.json | schema | 7023c772e08c | | schemas/frames/websocket-pong-frame.schema.json | schema | 8e14dde38aa3 | | schemas/frames/websocket-receive-bytes.schema.json | schema | ce947932d79f | | schemas/frames/websocket-receive-text.schema.json | schema | e99c5cc750a2 | | schemas/frames/websocket-send-bytes.schema.json | schema | ad47b364bf5b | | schemas/frames/websocket-send-text.schema.json | schema | 43759bf68f06 | | schemas/frames/webtransport-datagram-frame.schema.json | schema | 771c825084e4 | | schemas/frames/webtransport-stream-frame.schema.json | schema | 1c6470847545 | | schemas/frames.schema.json | schema | f2cd26e07ecd | | schemas/ids.schema.json | schema | da78d37bd5e6 | | schemas/jsonrpc.schema.json | schema | c885d927555d | | schemas/manifest.schema.json | schema | 57e8566de631 | | schemas/pathsend.schema.json | schema | 5ded01ee80d8 | | schemas/protocols.schema.json | schema | 2cabd7b55baa | | schemas/scope.schema.json | schema | 2698752580f8 | | schemas/scope_types.schema.json | schema | 8a79bbcb718a | | schemas/sse.schema.json | schema | 42e060246611 | | schemas/subevents.schema.json | schema | 778d5c6ddc30 | | schemas/surfaces.schema.json | schema | 1926e68c0c96 | | schemas/tls.schema.json | schema | c66e49f6031a | | schemas/transport.schema.json | schema | d54b83b136f1 | | schemas/websocket.schema.json | schema | b4e38fad362c | | schemas/webtransport.schema.json | schema | e6f9300bfe82 | | scope_types.yaml | registry | 620b4d20180e | | semantics.yaml | registry | e3bc8fe532b8 | | subevents.yaml | registry | 3f5432b79a57 | | surfaces.yaml | registry | 7bae2973aad0 |

Release Matrix

| Field | Value | | --- | --- | | Contract name | tigr-asgi-contract | | Contract version | 0.3.5-dev8 | | Artifact version | 0.3.5-dev8 | | Serde version | 1 | | Schema draft | 2020-12 | | Bindings | 7 | | Families | 6 | | Subevents | 50 | | Scope types | 4 | | Event types | 33 |

Scope Type Matrix

| ASGI3 scope type | Scope ext fields | Scope event types | Source | | --- | --- | --- | --- | | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | scope.schema.json | | websocket | transport, family_capabilities, websocket | websocket.connect, websocket.receive, websocket.disconnect, websocket.accept, websocket.send, websocket.close, transport.emit.complete, transport.emit.failed | scope.schema.json | | webtransport | transport, family_capabilities, webtransport | webtransport.connect, webtransport.accept, webtransport.stream.receive, webtransport.stream.send, webtransport.stream.close, webtransport.stream.reset, webtransport.stream.stop_sending, webtransport.datagram.receive, webtransport.datagram.send, webtransport.disconnect, webtransport.close, transport.emit.complete, transport.emit.failed | scope.schema.json | | lifespan | transport, family_capabilities | lifespan.startup, lifespan.startup.complete, lifespan.startup.failed, lifespan.shutdown, lifespan.shutdown.complete, lifespan.shutdown.failed | scope.schema.json |

Capability Matrix

| Capability field | Family alignment | Meaning | Schema source | | --- | --- | --- | --- | | request | request | bounded unary invocation available | transport.schema.json#/$defs/familyCapabilities | | session | session | long-lived association available | transport.schema.json#/$defs/familyCapabilities | | message | message | discrete logical message transport available | transport.schema.json#/$defs/familyCapabilities | | stream_in | stream | inbound stream chunks available | transport.schema.json#/$defs/familyCapabilities | | stream_out | stream | outbound stream chunks available | transport.schema.json#/$defs/familyCapabilities | | datagram | datagram | datagram transport available | transport.schema.json#/$defs/familyCapabilities | | lifespan | lifespan | ASGI lifespan startup and shutdown events available | transport.schema.json#/$defs/familyCapabilities |

Compatibility Matrix

| Compatibility field | Value | Meaning | Source | | --- | --- | --- | --- | | contract_name | tigr-asgi-contract | Canonical contract identifier | contract/compatibility.yaml | | contract_version | 0.3.5-dev8 | Published contract version | contract/compatibility.yaml | | serde_version | 1 | Serialization surface version | contract/compatibility.yaml | | schema_draft | 2020-12 | JSON Schema draft level | contract/compatibility.yaml |

Completion Matrix

| Completion level | Meaning | Default | Source | | --- | --- | --- | --- | | accepted_by_runtime | send accepted by runtime/output queue | no | contract/completion.yaml | | queued_for_transport | send queued for transport scheduling | no | contract/completion.yaml | | flushed_to_transport | send flushed to transport boundary | yes | contract/completion.yaml | | peer_acknowledged | peer acknowledged receipt where protocol supports acknowledgement | no | contract/completion.yaml | | failed_during_emit | emit failed before the requested semantic completion | no | contract/completion.yaml | | aborted_by_peer | peer aborted the operation before completion could be observed | no | contract/completion.yaml |

Event Matrix

| Transport event | ASGI3 scope type | Bindings | Related subevents | Meaning | | --- | --- | --- | --- | --- | | http.request | http | http.stream, jsonrpc, rest, sse | request.body_in, request.chunk_in, request.close, request.open, stream.chunk_in | Inbound HTTP request unit | | http.disconnect | http | http.stream, jsonrpc, rest, sse | request.disconnect, stream.reset | HTTP connection closed by peer or server | | http.response.start | http | http.stream, jsonrpc, rest, sse | response.open, stream.open | HTTP response metadata start | | http.response.body | http | http.stream, jsonrpc, rest, sse | message.out, message.replay, message.snapshot, response.body_out, response.chunk_out, response.finalize, stream.chunk_out, stream.close, stream.finalize, stream.flush | HTTP response body frame | | http.response.pathsend | http | http.stream, jsonrpc, rest, sse | - | | | websocket.connect | websocket | websocket | session.open | WebSocket connection open event | | websocket.receive | websocket | websocket | message.decode, message.decode_failed, message.handle, message.handle_failed, message.in | Inbound WebSocket frame | | websocket.disconnect | websocket | websocket | session.disconnect | WebSocket disconnect signal | | websocket.accept | websocket | websocket | session.accept, session.ready | WebSocket accept handshake response | | websocket.send | websocket | websocket | message.out, message.replay, message.snapshot, session.heartbeat, session.sync | Outbound WebSocket frame | | websocket.close | websocket | websocket | session.close, session.reject | WebSocket close frame | | webtransport.connect | webtransport | webtransport | session.open | WebTransport session connect event | | webtransport.accept | webtransport | webtransport | session.accept, session.ready | WebTransport accept event | | webtransport.stream.receive | webtransport | webtransport | message.decode, message.decode_failed, message.handle, message.handle_failed, message.in, stream.chunk_in | Inbound WebTransport stream frame | | webtransport.stream.send | webtransport | webtransport | message.out, message.replay, message.snapshot, session.heartbeat, session.sync, stream.chunk_out, stream.finalize, stream.flush, stream.open | Outbound WebTransport stream frame | | webtransport.stream.close | webtransport | webtransport | stream.close | Per-stream WebTransport close or FIN | | webtransport.stream.reset | webtransport | webtransport | stream.reset | Per-stream WebTransport reset | | webtransport.stream.stop_sending | webtransport | webtransport | stream.stop_sending | Per-stream WebTransport stop-sending signal | | webtransport.datagram.receive | webtransport | webtransport | datagram.handle, datagram.in, message.decode, message.decode_failed, message.handle, message.handle_failed, message.in | Inbound WebTransport datagram | | webtransport.datagram.send | webtransport | webtransport | datagram.out | Outbound WebTransport datagram | | webtransport.disconnect | webtransport | webtransport | session.disconnect | WebTransport disconnect signal | | webtransport.close | webtransport | webtransport | session.close, session.reject | WebTransport session close event | | stream.resume.request | http, websocket, webtransport | - | - | | | stream.resume.accept | http, websocket, webtransport | - | - | | | stream.resume.reject | http, websocket, webtransport | - | - | | | lifespan.startup | lifespan | - | lifespan.startup | ASGI lifespan startup receive event | | lifespan.startup.complete | lifespan | - | lifespan.startup_complete | ASGI lifespan startup completion send event | | lifespan.startup.failed | lifespan | - | lifespan.startup_failed | ASGI lifespan startup failure send event | | lifespan.shutdown | lifespan | - | lifespan.shutdown | ASGI lifespan shutdown receive event | | lifespan.shutdown.complete | lifespan | - | lifespan.shutdown_complete | ASGI lifespan shutdown completion send event | | lifespan.shutdown.failed | lifespan | - | lifespan.shutdown_failed | ASGI lifespan shutdown failure send event | | transport.emit.complete | http, websocket, webtransport | http.stream, jsonrpc, lifespan, rest, sse, websocket, webtransport | datagram.emit_complete, message.emit_complete, response.emit_complete, session.emit_complete, stream.emit_complete | Completion emission event | | transport.emit.failed | http, websocket, webtransport | - | datagram.emit_failed, message.emit_failed | Failed emission event |

Family Matrix

| Family | Subevent count | Required bindings | Optional bindings | Subevents | | --- | --- | --- | --- | --- | | request | 11 | rest, jsonrpc, http.stream, sse | - | request.open, request.body_in, request.chunk_in, request.dispatch, request.close, request.disconnect, response.open, response.body_out, response.chunk_out, response.finalize, response.emit_complete | | session | 9 | sse, websocket, webtransport | - | session.open, session.accept, session.reject, session.ready, session.heartbeat, session.sync, session.close, session.disconnect, session.emit_complete | | message | 10 | sse, websocket | - | message.in, message.decode, message.decode_failed, message.handle, message.handle_failed, message.out, message.replay, message.snapshot, message.emit_complete, message.emit_failed | | stream | 9 | http.stream, sse, webtransport | rest, jsonrpc | stream.open, stream.chunk_in, stream.chunk_out, stream.flush, stream.finalize, stream.reset, stream.stop_sending, stream.close, stream.emit_complete | | datagram | 5 | webtransport | - | datagram.in, datagram.handle, datagram.out, datagram.emit_complete, datagram.emit_failed | | lifespan | 6 | lifespan | - | lifespan.startup, lifespan.startup_complete, lifespan.startup_failed, lifespan.shutdown, lifespan.shutdown_complete, lifespan.shutdown_failed |

Subevent Matrix

| Subevent | Family | Family legality | Required bindings | Optional bindings | Derived bindings | Related transport events | | --- | --- | --- | --- | --- | --- | --- | | request.open | request | R required | rest, jsonrpc, http.stream, sse | - | - | http.request | | request.body_in | request | R required | rest, jsonrpc | http.stream, sse | - | http.request | | request.chunk_in | request | R required | - | - | http.stream | http.request | | request.dispatch | request | R required | - | - | rest, jsonrpc, http.stream, sse | - | | request.close | request | R required | rest, jsonrpc, http.stream, sse | - | - | http.request | | request.disconnect | request | R required | - | rest, jsonrpc, http.stream, sse | - | http.disconnect | | response.open | request | R required | rest, jsonrpc, http.stream | sse | - | http.response.start | | response.body_out | request | R required | rest, jsonrpc | http.stream | - | http.response.body | | response.chunk_out | request | R required | - | - | http.stream, sse | http.response.body | | response.finalize | request | R required | - | rest, jsonrpc, http.stream, sse | - | http.response.body | | response.emit_complete | request | R required | rest, jsonrpc, http.stream, sse | - | - | transport.emit.complete | | session.open | session | R required | sse, websocket, webtransport | - | - | websocket.connect, webtransport.connect | | session.accept | session | R required | sse, websocket, webtransport | - | - | websocket.accept, webtransport.accept | | session.reject | session | R required | - | websocket, webtransport | - | websocket.close, webtransport.close | | session.ready | session | R required | sse, websocket, webtransport | - | - | websocket.accept, webtransport.accept | | session.heartbeat | session | R required | - | sse, websocket, webtransport | - | websocket.send, webtransport.stream.send | | session.sync | session | R required | - | sse, websocket, webtransport | - | websocket.send, webtransport.stream.send | | session.close | session | R required | sse, websocket, webtransport | - | - | websocket.close, webtransport.close | | session.disconnect | session | R required | - | sse, websocket, webtransport | - | websocket.disconnect, webtransport.disconnect | | session.emit_complete | session | R required | - | sse, websocket, webtransport | - | transport.emit.complete | | message.in | message | R required | websocket | - | - | websocket.receive, webtransport.stream.receive, webtransport.datagram.receive | | message.decode | message | R required | - | websocket | jsonrpc | websocket.receive, webtransport.stream.receive, webtransport.datagram.receive | | message.decode_failed | message | R required | - | websocket | jsonrpc | websocket.receive, webtransport.stream.receive, webtransport.datagram.receive | | message.handle | message | R required | websocket | - | - | websocket.receive, webtransport.stream.receive, webtransport.datagram.receive | | message.handle_failed | message | R required | - | websocket | - | websocket.receive, webtransport.stream.receive, webtransport.datagram.receive | | message.out | message | R required | sse, websocket | - | - | websocket.send, webtransport.stream.send, http.response.body | | message.replay | message | R required | - | sse, websocket | - | websocket.send, webtransport.stream.send, http.response.body | | message.snapshot | message | R required | - | sse, websocket | - | websocket.send, webtransport.stream.send, http.response.body | | message.emit_complete | message | R required | sse, websocket | - | - | transport.emit.complete | | message.emit_failed | message | R required | - | sse, websocket | - | transport.emit.failed | | stream.open | stream | R required | http.stream, sse, webtransport | rest, jsonrpc | - | webtransport.stream.send, http.response.start | | stream.chunk_in | stream | R required | http.stream, webtransport | rest, jsonrpc | - | webtransport.stream.receive, http.request | | stream.chunk_out | stream | R required | http.stream, sse, webtransport | rest, jsonrpc | - | webtransport.stream.send, http.response.body | | stream.flush | stream | R required | - | http.stream, sse, webtransport | - | webtransport.stream.send, http.response.body | | stream.finalize | stream | R required | http.stream, webtransport | rest, jsonrpc, sse | - | webtransport.stream.send, http.response.body | | stream.reset | stream | R required | - | http.stream, sse, webtransport | - | webtransport.stream.reset, http.disconnect | | stream.stop_sending | stream | R required | - | webtransport | - | webtransport.stream.stop_sending | | stream.close | stream | R required | http.stream, sse, webtransport | rest, jsonrpc | - | webtransport.stream.close, http.response.body | | stream.emit_complete | stream | R required | http.stream, sse, webtransport | rest, jsonrpc | - | transport.emit.complete | | datagram.in | datagram | R required | webtransport | - | - | webtransport.datagram.receive | | datagram.handle | datagram | R required | webtransport | - | - | webtransport.datagram.receive | | datagram.out | datagram | R required | webtransport | - | - | webtransport.datagram.send | | datagram.emit_complete | datagram | R required | webtransport | - | - | transport.emit.complete | | datagram.emit_failed | datagram | R required | - | webtransport | - | transport.emit.failed | | lifespan.startup | lifespan | R required | lifespan | - | - | lifespan.startup | | lifespan.startup_complete | lifespan | R required | lifespan | - | - | lifespan.startup.complete | | lifespan.startup_failed | lifespan | R required | - | lifespan | - | lifespan.startup.failed | | lifespan.shutdown | lifespan | R required | lifespan | - | - | lifespan.shutdown | | lifespan.shutdown_complete | lifespan | R required | lifespan | - | - | lifespan.shutdown.complete | | lifespan.shutdown_failed | lifespan | R required | - | lifespan | - | lifespan.shutdown.failed |

Binding Subevent Matrix

Every row is a concrete binding x subevent record sourced from the legality registries.

| Binding | Protocols | Exchange | ASGI3 scope type | Scope ext fields | Scope event types | Required families | Optional families | Subevent | Family | Family legality | Binding legality | Related transport events | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | request.open | request | R required | R required | http.request | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | request.body_in | request | R required | R required | http.request | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | request.chunk_in | request | R required | F forbidden | http.request | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | request.dispatch | request | R required | D derived | - | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | request.close | request | R required | R required | http.request | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | request.disconnect | request | R required | O optional | http.disconnect | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | response.open | request | R required | R required | http.response.start | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | response.body_out | request | R required | R required | http.response.body | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | response.chunk_out | request | R required | F forbidden | http.response.body | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | response.finalize | request | R required | O optional | http.response.body | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | response.emit_complete | request | R required | R required | transport.emit.complete | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | session.open | session | R required | F forbidden | websocket.connect, webtransport.connect | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | session.accept | session | R required | F forbidden | websocket.accept, webtransport.accept | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | session.reject | session | R required | F forbidden | websocket.close, webtransport.close | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | session.ready | session | R required | F forbidden | websocket.accept, webtransport.accept | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | session.heartbeat | session | R required | F forbidden | websocket.send, webtransport.stream.send | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | session.sync | session | R required | F forbidden | websocket.send, webtransport.stream.send | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | session.close | session | R required | F forbidden | websocket.close, webtransport.close | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | session.disconnect | session | R required | F forbidden | websocket.disconnect, webtransport.disconnect | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | session.emit_complete | session | R required | F forbidden | transport.emit.complete | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | message.in | message | R required | F forbidden | websocket.receive, webtransport.stream.receive, webtransport.datagram.receive | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | message.decode | message | R required | F forbidden | websocket.receive, webtransport.stream.receive, webtransport.datagram.receive | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | message.decode_failed | message | R required | F forbidden | websocket.receive, webtransport.stream.receive, webtransport.datagram.receive | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | message.handle | message | R required | F forbidden | websocket.receive, webtransport.stream.receive, webtransport.datagram.receive | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | message.handle_failed | message | R required | F forbidden | websocket.receive, webtransport.stream.receive, webtransport.datagram.receive | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | message.out | message | R required | F forbidden | websocket.send, webtransport.stream.send, http.response.body | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | message.replay | message | R required | F forbidden | websocket.send, webtransport.stream.send, http.response.body | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | message.snapshot | message | R required | F forbidden | websocket.send, webtransport.stream.send, http.response.body | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | message.emit_complete | message | R required | F forbidden | transport.emit.complete | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | message.emit_failed | message | R required | F forbidden | transport.emit.failed | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | stream.open | stream | R required | O optional | webtransport.stream.send, http.response.start | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | stream.chunk_in | stream | R required | O optional | webtransport.stream.receive, http.request | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | stream.chunk_out | stream | R required | O optional | webtransport.stream.send, http.response.body | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | stream.flush | stream | R required | F forbidden | webtransport.stream.send, http.response.body | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | stream.finalize | stream | R required | O optional | webtransport.stream.send, http.response.body | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | stream.reset | stream | R required | F forbidden | webtransport.stream.reset, http.disconnect | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | stream.stop_sending | stream | R required | F forbidden | webtransport.stream.stop_sending | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | stream.close | stream | R required | O optional | webtransport.stream.close, http.response.body | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | stream.emit_complete | stream | R required | O optional | transport.emit.complete | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | datagram.in | datagram | R required | F forbidden | webtransport.datagram.receive | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | datagram.handle | datagram | R required | F forbidden | webtransport.datagram.receive | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | datagram.out | datagram | R required | F forbidden | webtransport.datagram.send | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | datagram.emit_complete | datagram | R required | F forbidden | transport.emit.complete | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | datagram.emit_failed | datagram | R required | F forbidden | transport.emit.failed | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | lifespan.startup | lifespan | R required | F forbidden | lifespan.startup | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | lifespan.startup_complete | lifespan | R required | F forbidden | lifespan.startup.complete | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | lifespan.startup_failed | lifespan | R required | F forbidden | lifespan.startup.failed | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | lifespan.shutdown | lifespan | R required | F forbidden | lifespan.shutdown | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | lifespan.shutdown_complete | lifespan | R required | F forbidden | lifespan.shutdown.complete | | rest | http.rest, https.rest | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | lifespan.shutdown_failed | lifespan | R required | F forbidden | lifespan.shutdown.failed | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | request.open | request | R required | R required | http.request | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | request.body_in | request | R required | R required | http.request | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | request.chunk_in | request | R required | F forbidden | http.request | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | request.dispatch | request | R required | D derived | - | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | request.close | request | R required | R required | http.request | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | request.disconnect | request | R required | O optional | http.disconnect | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | response.open | request | R required | R required | http.response.start | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | response.body_out | request | R required | R required | http.response.body | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | response.chunk_out | request | R required | F forbidden | http.response.body | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | response.finalize | request | R required | O optional | http.response.body | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | response.emit_complete | request | R required | R required | transport.emit.complete | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | session.open | session | R required | F forbidden | websocket.connect, webtransport.connect | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | session.accept | session | R required | F forbidden | websocket.accept, webtransport.accept | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | session.reject | session | R required | F forbidden | websocket.close, webtransport.close | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | session.ready | session | R required | F forbidden | websocket.accept, webtransport.accept | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | session.heartbeat | session | R required | F forbidden | websocket.send, webtransport.stream.send | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | session.sync | session | R required | F forbidden | websocket.send, webtransport.stream.send | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | session.close | session | R required | F forbidden | websocket.close, webtransport.close | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | session.disconnect | session | R required | F forbidden | websocket.disconnect, webtransport.disconnect | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | session.emit_complete | session | R required | F forbidden | transport.emit.complete | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | message.in | message | R required | F forbidden | websocket.receive, webtransport.stream.receive, webtransport.datagram.receive | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | message.decode | message | R required | D derived | websocket.receive, webtransport.stream.receive, webtransport.datagram.receive | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | message.decode_failed | message | R required | D derived | websocket.receive, webtransport.stream.receive, webtransport.datagram.receive | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | message.handle | message | R required | F forbidden | websocket.receive, webtransport.stream.receive, webtransport.datagram.receive | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | message.handle_failed | message | R required | F forbidden | websocket.receive, webtransport.stream.receive, webtransport.datagram.receive | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | message.out | message | R required | F forbidden | websocket.send, webtransport.stream.send, http.response.body | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | message.replay | message | R required | F forbidden | websocket.send, webtransport.stream.send, http.response.body | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | message.snapshot | message | R required | F forbidden | websocket.send, webtransport.stream.send, http.response.body | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | message.emit_complete | message | R required | F forbidden | transport.emit.complete | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | message.emit_failed | message | R required | F forbidden | transport.emit.failed | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | stream.open | stream | R required | O optional | webtransport.stream.send, http.response.start | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | stream.chunk_in | stream | R required | O optional | webtransport.stream.receive, http.request | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | stream.chunk_out | stream | R required | O optional | webtransport.stream.send, http.response.body | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | stream.flush | stream | R required | F forbidden | webtransport.stream.send, http.response.body | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | stream.finalize | stream | R required | O optional | webtransport.stream.send, http.response.body | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | stream.reset | stream | R required | F forbidden | webtransport.stream.reset, http.disconnect | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | stream.stop_sending | stream | R required | F forbidden | webtransport.stream.stop_sending | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | stream.close | stream | R required | O optional | webtransport.stream.close, http.response.body | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | stream.emit_complete | stream | R required | O optional | transport.emit.complete | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | datagram.in | datagram | R required | F forbidden | webtransport.datagram.receive | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | datagram.handle | datagram | R required | F forbidden | webtransport.datagram.receive | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | datagram.out | datagram | R required | F forbidden | webtransport.datagram.send | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | datagram.emit_complete | datagram | R required | F forbidden | transport.emit.complete | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | datagram.emit_failed | datagram | R required | F forbidden | transport.emit.failed | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | lifespan.startup | lifespan | R required | F forbidden | lifespan.startup | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | lifespan.startup_complete | lifespan | R required | F forbidden | lifespan.startup.complete | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | lifespan.startup_failed | lifespan | R required | F forbidden | lifespan.startup.failed | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | lifespan.shutdown | lifespan | R required | F forbidden | lifespan.shutdown | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | lifespan.shutdown_complete | lifespan | R required | F forbidden | lifespan.shutdown.complete | | jsonrpc | http.jsonrpc, https.jsonrpc | unary | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request | stream | lifespan.shutdown_failed | lifespan | R required | F forbidden | lifespan.shutdown.failed | | http.stream | http.stream, https.stream | server_stream | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request, stream | - | request.open | request | R required | R required | http.request | | http.stream | http.stream, https.stream | server_stream | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request, stream | - | request.body_in | request | R required | O optional | http.request | | http.stream | http.stream, https.stream | server_stream | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request, stream | - | request.chunk_in | request | R required | D derived | http.request | | http.stream | http.stream, https.stream | server_stream | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request, stream | - | request.dispatch | request | R required | D derived | - | | http.stream | http.stream, https.stream | server_stream | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request, stream | - | request.close | request | R required | R required | http.request | | http.stream | http.stream, https.stream | server_stream | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request, stream | - | request.disconnect | request | R required | O optional | http.disconnect | | http.stream | http.stream, https.stream | server_stream | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request, stream | - | response.open | request | R required | R required | http.response.start | | http.stream | http.stream, https.stream | server_stream | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request, stream | - | response.body_out | request | R required | O optional | http.response.body | | http.stream | http.stream, https.stream | server_stream | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request, stream | - | response.chunk_out | request | R required | D derived | http.response.body | | http.stream | http.stream, https.stream | server_stream | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, http.response.body, transport.emit.complete, transport.emit.failed | request, stream | - | response.finalize | request | R required | O optional | http.response.body | | http.stream | http.stream, https.stream | server_stream | http | transport, family_capabilities | http.request, http.disconnect, http.response.start, `