Envoy Logo

boe create

The create command generates a new extension template with the specified name and type. This is useful for getting started with developing a new extension for Built On Envoy.

By default, it creates a go type HTTP filter extension. The generated template includes boilerplate code, a manifest file, and build configuration to help you build and install the extension.

Examples

Create a new Go HTTP filter extension:

boe create my-extension

Create an extension in a specific directory:

boe create my-extension --path ~/src/extensions

Create an extension with explicit type:

boe create my-extension --type go

Create a Rust dynamic module extension:

boe create my-extension --type rust

Create a Rust network (L4) filter extension:

boe create my-tcp-extension --type rust --filter-type network

Create a Rust listener (L4) filter extension:

boe create my-listener-extension --type rust --filter-type listener

Create a Rust UDP listener filter extension:

boe create my-udp-extension --type rust --filter-type udp_listener

Create an ExtProc extension:

boe create my-extproc-extension --type ext_proc

Create a Wasm extension (Go, compiled to WebAssembly):

boe create my-wasm-extension --type wasm

Extension Types

  • go: An HTTP filter extension using the Envoy dynamic modules SDK for Go. Generates Go source files, Makefile, and Dockerfile for building and deploying. Network filters are not currently supported for Go extensions.
  • rust: A dynamic module extension using the Envoy dynamic modules SDK for Rust. Generates Rust source files and Cargo.toml for building a dynamic library. Supports HTTP filters (default), network (L4) filters, listener (L4) filters, and UDP listener filters via --filter-type.
  • ext_proc: An extension that runs as an Envoy External Processor server as an independent process.
  • wasm: An HTTP filter written in Go using the proxy-wasm Go SDK and compiled to a WebAssembly module with the standard Go toolchain (GOOS=wasip1 GOARCH=wasm). Network filters are not currently supported for Wasm extensions.

Usage details

boe create <name> [flags]
boe create --help

Arguments

Name Description Type Required
name Name of the extension. string Yes

Flags

Name Description Type Default Env Var Required
--type Type of the extension (go, rust, ext_proc, wasm). string go - No
--filter-type Filter type (http, network, listener, udp_listener). Network, listener, and udp_listener filters are only supported for rust. string http - No
--path Output directory for the extension. Defaults to the extension name. string - - No
--composer-version Composer version for Go extensions. Resolved from the registry if not set. string - - No