envoyproxy / envoyproxy/envoy

Add platform constraints for extensions

Open
#46,633 1 comment 0 reactions 0 assignees View on GitHub
area/extension enhancement stale
Dominant language
C++
Stars
28.9k
Forks
5.6k
Avg merge
1d 22h
Merged PRs (30d)
430

Description

currently we have no way of gating an extension for or from particular platforms

instead we have historically used an anti-pattern of gating with selects rendering empty files/libs on non-compatible platforms

this is an anti-pattern for several reasons

firstly gating only with selects and not proper platform constraints means whatever deps are referenced are pulled in regardless of compatibility

secondly this leaves useless stub bloat in the final bins with extensions that can never run

and finally anything that _is_ properly platform constrained can break unrelated builds if it is not itself properly gated out

realistically the seam here is at the **extension** level - some extensions - eg socketmap will only ever run on linux - they sshould be gated as such and not included in binaries for other platforms

gating at the extension level would also mean we can document the extensions properly - exposing their actual platform constraints

Contributor guide

Open the contributing guide

Research direction

No files or tests are named. Start by tracing how extensions are selected and built, including the existing select-based platform gating; define how constraints at the extension level should exclude incompatible extensions and their dependencies. Done means incompatible extensions are omitted from binaries and their platform constraints are exposed in documentation.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
build-system
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.