Envoy 源码目录结构说明

#TODO

api/ Envoy 数据平面(data plane) API
bazel/ Envoy 使用Bazel构建时的配置
ci/ 用于构建CI和Docker容器的脚本
configs/ Envoy 实例的配置
docs/ 最终用户面对的Envoy代理和数据平面API以及最终脚本发布的文档
examples/用Docker部署的更大的Envoy实例
include/ Envoy 核心代码的公共接口头文件。几乎都是100%的抽象类。
restarter/ Envoy热重启的python脚本
support/ 开发支持脚本
tools/ 其他工具

source/ 源码
common/ 核心代码。没有特殊的拓展也没有特殊的服务器实现。可以被Envoy当作lib使用
docs/ 与公共用户文档无关的杂项开发/设计文档
exe/ 最终构建可执行程序。这是集成和单元测试不共享的唯一代码。
server/ 构建 Envoy为独立服务器进程。例如配置,启动,工作等。common和server的界定已经有些模糊。
extensions/ 核心代码拓展
access_loggers/ 权限日志
filters/http/ HTTP L7
filters/listener/ 监听
filters/network/ 网络 L4
grpc_credentials/ grpc
health_checker/ 健康监测
resolvers/ 解析
stat_sinks/ 统计
tracers/ 追踪
transport_sockets/ socket 实现

test/ Envoy及其扩展的测试代码
common/
test/
server/
extensions/ 对应的单元测试
integration/ 端到端的集成测试
mocks/ include 中Envoy所有的接口实现模拟