plano/config
Adil Hafeez 42d3de8906 bidirectional streaming for output filter chains
Replace per-chunk HTTP requests to output filters with a single
bidirectional streaming connection per filter. This eliminates
the 50-200+ round-trips per streaming LLM response.

Filters opt in via streaming: true in config. When all output filters
support streaming, brightstaff opens one POST per filter with a streaming
request body (Body::wrap_stream) and reads the streaming response. Filters
that don't opt in fall back to the existing per-chunk behavior.

Updates the PII deanonymizer demo as the reference implementation with
request.stream() + StreamingResponse support.

Made-with: Cursor
2026-03-19 02:27:26 -07:00
..
docker-compose.dev.yaml Overhaul demos directory: cleanup, restructure, and standardize configs (#760) 2026-02-17 03:09:28 -08:00
env.list restructure cli (#656) 2025-12-25 14:55:29 -08:00
envoy.template.yaml Unified overrides for custom router and orchestrator models (#820) 2026-03-15 09:36:11 -07:00
plano_config_schema.yaml bidirectional streaming for output filter chains 2026-03-19 02:27:26 -07:00
README.md Adding support for wildcard models in the model_providers config (#696) 2026-01-28 17:47:33 -08:00
requirements.txt restructure cli (#656) 2025-12-25 14:55:29 -08:00
supervisord.conf Rename all arch references to plano (#745) 2026-02-13 15:16:56 -08:00
test_passthrough.yaml Run plano natively by default (#744) 2026-03-05 07:35:25 -08:00
validate_plano_config.sh Run plano natively by default (#744) 2026-03-05 07:35:25 -08:00

Envoy filter code for gateway

Add toolchain

$ rustup target add wasm32-wasip1

Building

$ cargo build --target wasm32-wasip1 --release

Testing

$ cargo test

Local development

  • Build docker image for Plano. Note this needs to be built once.

    $ sh build_filter_image.sh
    
  • Build filter binary,

    $ cargo build --target wasm32-wasip1 --release
    
  • Start envoy with config.yaml and test,

    $ docker compose -f docker-compose.dev.yaml up plano
    
  • dev version of docker-compose file uses following files that are mounted inside the container. That means no docker rebuild is needed if any of these files change. Just restart the container and chagne will be picked up,

    • envoy.template.yaml
    • intelligent_prompt_gateway.wasm