AGENTS.md
src/core/lib/transport/AGENTS.mdAGENTS.md
Quality
39/100
Scores the file, not the repository.Length
366 words
4 headings · 0 code blocksRepository
45k
— · pushed 0 days agoLast changed
3 days ago
First indexed 3 days ago.1# Common Transport Utilities (lib/transport)23* This directory contains common implementation details, abstractions, and utilities shared across various gRPC transport implementations (such as CHTTP2, PH2, Inproc, and Chaotic Good).45See also: [gRPC Transports overview](../../transport/AGENTS.md)67## Overarching Purpose89Files in this directory provide essential abstractions and reusable components that transport implementations depend on. Rather than each transport reinventing basic networking, state tracking, or encoding primitives, they utilize the APIs exposed here.1011**Core Responsibilities:**12* **Transport Abstraction Interfaces:** The core struct definitions for `grpc_transport` and `grpc_stream`.13* **Promise-Based Networking:** Providing the `PromiseEndpoint` API to wrap traditional EventEngine endpoints with modern C++ Coroutine/Promise interfaces.14* **Bandwidth Estimation:** Tracking bytes sent/received over time to dynamically compute Bandwidth-Delay Product (BDP) for flow control.15* **State & Error Tracking:** Tracking connectivity states and converting error namespaces/types (e.g., HTTP/2 status/errors to `absl::Status` or gRPC status codes).16* **Header Encoding & Parsing:** Encoding and decoding gRPC timeout headers securely and efficiently.1718## Key Files and Components1920* **`transport.{h,cc}`**21 * Defines the underlying `grpc_transport` and `grpc_stream` structs.22 * Contains core serialization, statistic structures, and operational batching definitions (`grpc_transport_stream_op_batch`).23* **`promise_endpoint.{h,cc}`**24 * The `PromiseEndpoint` class provides a convenient API to run asynchronous read/write network streams using the gRPC Promise framework (`src/core/lib/promise`).25* **`bdp_estimator.{h,cc}`**26 * The `BdpEstimator` tracks traffic flow to adapt HTTP/2 window sizes (flow control) based on connection bandwidth and latency.27* **`connectivity_state.{h,cc}`**28 * Tracks `grpc_connectivity_state` transitions for channels/transports. Provides state change notifications.29* **`timeout_encoding.{h,cc}`**30 * Provides standard routines to encode and decode the `grpc-timeout` HTTP/2 header.31* **`status_conversion.{h,cc}`**32 * Utility functions converting between HTTP status codes, HTTP/2 errors (`grpc_chttp2_error_code`), and gRPC canonical status codes (`grpc_status_code`).33* **`error_utils.{h,cc}`**34 * Utilities for converting transit errors, raw `grpc_error_handle` objects, or `absl::Status` into status codes and error messages.35* **`call_final_info.{h,cc}`**36 * Struct definitions tracking transport-level metrics and statistics compiled when a call terminates.3738## Dependencies and Guidelines3940* **Modern promise-based code:** New additions or modifications to `PromiseEndpoint` should strictly follow the conventions of the gRPC Promise framework located in `src/core/lib/promise/`.41* **Compatibility:** Changes in this directory affect all transport types. Extra caution should be taken to avoid breaking behavior across CHTTP2, PH2, and chaotic_good transports. Ensure their respective unit and end-to-end tests run after making any modifications here.42
Also in grpc/grpc
Diff this repo’s formatsOne repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| grpc/grpcsrc/core/ext/filters/census/AGENTS.md · 45k | AGENTS.md | no sections | 25/100 | 3 days ago | |
| grpc/grpcsrc/core/ext/filters/gcp_authentication/AGENTS.md · 45k | AGENTS.md | security | 44/100 | 3 days ago | |
| grpc/grpcsrc/core/ext/filters/http/AGENTS.md · 45k | AGENTS.md | no sections | 44/100 | 3 days ago | |
| grpc/grpcsrc/core/ext/filters/stateful_session/AGENTS.md · 45k | AGENTS.md | no sections | 44/100 | 3 days ago | |
| grpc/grpcsrc/core/ext/transport/chaotic_good/AGENTS.md · 45k | AGENTS.md | no sections | 48/100 | 3 days ago | |
| grpc/grpcsrc/core/ext/transport/inproc/AGENTS.md · 45k | AGENTS.md | no sections | 44/100 | 3 days ago | |
| grpc/grpcsrc/core/filter/AGENTS.md · 45k | AGENTS.md | no sections | 44/100 | 3 days ago | |
| grpc/grpcsrc/core/handshaker/AGENTS.md · 45k | AGENTS.md | no sections | 39/100 | 3 days ago | |
| grpc/grpcsrc/core/server/AGENTS.md · 45k | AGENTS.md | no sections | 44/100 | 3 days ago | |
| grpc/grpcsrc/core/service_config/AGENTS.md · 45k | AGENTS.md | no sections | 44/100 | 3 days ago | |
| grpc/grpcsrc/core/telemetry/AGENTS.md · 45k | AGENTS.md | no sections | 39/100 | 3 days ago | |
| grpc/grpcsrc/core/transport/AGENTS.md · 45k | AGENTS.md | no sections | 39/100 | 3 days ago | |
| grpc/grpcsrc/core/credentials/transport/AGENTS.md · 45k | AGENTS.md | security | 39/100 | 3 days ago | |
| grpc/grpcsrc/core/ext/filters/backend_metrics/AGENTS.md · 45k | AGENTS.md | no sections | 44/100 | 3 days ago | |
| grpc/grpcsrc/core/credentials/AGENTS.md · 45k | AGENTS.md | security | 39/100 | 3 days ago | |
| grpc/grpcsrc/core/tsi/AGENTS.md · 45k | AGENTS.md | security | 39/100 | 3 days ago | |
| grpc/grpcsrc/core/tsi/alts/AGENTS.md · 45k | AGENTS.md | no sections | 39/100 | 3 days ago | |
| grpc/grpcsrc/core/credentials/call/AGENTS.md · 45k | AGENTS.md | security | 39/100 | 3 days ago | |
| grpc/grpcsrc/core/ext/transport/chttp2/AGENTS.md · 45k | AGENTS.md | testarchdependencies | 48/100 | 3 days ago | |
| grpc/grpcAGENTS.md · 45k | AGENTS.md | styledependenciesdo-not | 54/100 | 3 days ago |
Diff against src/core/ext/filters/census/AGENTS.md Diff against src/core/ext/filters/gcp_authentication/AGENTS.md Diff against src/core/ext/filters/http/AGENTS.md Diff against src/core/ext/filters/stateful_session/AGENTS.md Diff against src/core/ext/transport/chaotic_good/AGENTS.md Diff against src/core/ext/transport/inproc/AGENTS.md Diff against src/core/filter/AGENTS.md Diff against src/core/handshaker/AGENTS.md Diff against src/core/server/AGENTS.md Diff against src/core/service_config/AGENTS.md Diff against src/core/telemetry/AGENTS.md Diff against src/core/transport/AGENTS.md Diff against src/core/credentials/transport/AGENTS.md Diff against src/core/ext/filters/backend_metrics/AGENTS.md Diff against src/core/credentials/AGENTS.md Diff against src/core/tsi/AGENTS.md Diff against src/core/tsi/alts/AGENTS.md Diff against src/core/credentials/call/AGENTS.md Diff against src/core/ext/transport/chttp2/AGENTS.md Diff against AGENTS.md
Similar configs
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| vllm-project/vllmAGENTS.md · 88k | AGENTS.md | setuptestlint-formatstyle+5 | 100/100 | 3 days ago | |
| duckduckgo/content-scope-scriptsspecial-pages/AGENTS.md · 70 | AGENTS.md | buildteststylearch+3 | 100/100 | 3 days ago | |
| react/react-nativepackages/react-native-compatibility-check/AGENTS.md · 126k | AGENTS.md | testlint-formatstylearch+4 | 99/100 | 3 days ago | |
| netdata/netdatasrc/go/plugin/ibm.d/AGENTS.md · 80k | AGENTS.md | buildtestlint-formatarch+3 | 99/100 | 3 days ago | |
| dragonflydb/dragonflyAGENTS.md · 31k | AGENTS.md | setupbuildtestlint-format+10 | 96/100 | 2 days ago | |
| dotnet/aspnetcoresrc/Components/AGENTS.md · 38k | AGENTS.md | buildteststylearch+3 | 96/100 | 3 days ago | |
| duckdb/duckdbAGENTS.md · 40k | AGENTS.md | buildtestlint-formatstyle+8 | 96/100 | today | |
| steipete/CodexBarAGENTS.md · 20k | AGENTS.md | buildteststylearch+4 | 93/100 | 3 days ago |
