Envoy 源码结构

译自 https://github.com/envoyproxy/envoy/blob/master/REPO_LAYOUT.md:

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所有的接口实现模拟

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐