Skip to content

Conversation

phlax
Copy link
Member

@phlax phlax commented Jul 4, 2025

No description provided.

Signed-off-by: Ryan Northey <[email protected]>
Copy link
Member

@wbpcode wbpcode left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for adding this and some initial comments are added.


## Module Types

Envoy supports three primary approaches for building extensions:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Envoy supports three primary approaches for building extensions:
Envoy supports three primary approaches for building dynamic extensions:

Envoy supports three primary approaches for building extensions:

### [Dynamic Modules](./dynamic/)
Native extensions written in C++, Rust, or Go that are compiled as shared libraries and loaded dynamically at runtime.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Native extensions written in C++, Rust, or Go that are compiled as shared libraries and loaded dynamically at runtime.
Extensions written in C++, Rust, or Go that are compiled as shared libraries and loaded dynamically at runtime.

AFAIK, the native often be used to refer to the extensions that built in Envoy binary.

## Contributing

Contributions are welcome! Please ensure your modules:
- Follow Envoy's extension best practices
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what is the best practices?

@@ -0,0 +1,81 @@
# Dynamic Modules

Dynamic modules are native extensions for Envoy that are compiled as shared libraries and loaded at runtime. These modules can be written in C++, Rust, or Go.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

May be remove the native? I am not very sure now. Because, in some way, the shared lib is native..., but it is different with our native extensions in the envoyproxy/envoy.

## Supported Languages

### C++
- Direct access to Envoy's C++ APIs
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note, dynamic module couldn't access Envoy C++ API directly. The dynamic modules are build based a C API (https://github.com/envoyproxy/envoy/blob/main/source/extensions/dynamic_modules/abi.h) that exposed by the Envoy. It has very big difference with the actual C++ API that used by our actual native extension (Like https://github.com/envoyproxy/envoy/blob/main/envoy/http/filter.h)

@phlax
Copy link
Member Author

phlax commented Jul 9, 2025

hi @wbpcode i should have probably set this to WIP it was a bot generated first attempt

now that you have reviewed tho - lets iterate - ill go through your review later today

- filters:
- name: envoy.filters.http.dynamic_module
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.dynamic_module.v3.DynamicModule
Copy link

@david-martin david-martin Jul 18, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"@type": type.googleapis.com/envoy.extensions.filters.http.dynamic_module.v3.DynamicModule
"@type": type.googleapis.com/envoy.extensions.filters.http.dynamic_modules.v3.DynamicModuleFilter

Is this the right type, from https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/http/dynamic_modules/v3/dynamic_modules.proto#extensions-filters-http-dynamic-modules-v3-dynamicmodulefilter ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants