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 an ExtProc extension:
boe create my-extproc-extension --type ext_proc
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 both HTTP filters (default) and network (L4) filters via
--filter-type. - ext_proc: An extension that runs as an Envoy External Processor server as an independent process.
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). | string | go | - | No |
--filter-type | Filter type (http, network). Network filters are only supported for rust. | string | http | - | No |
--path | Output directory for the extension. Defaults to the extension name. | string | - | - | No |