The Linkerd Proxy

Linkerd 服务网格的专用代理。用 Rust 编写。「A purpose-built proxy for the Linkerd service mesh. Written in Rust.」

Github星跟蹤圖

The Linkerd Proxy

linkerd2

GitHub license
Slack Status

This repo contains the transparent proxy component of Linkerd2.
While the Linkerd2 proxy is heavily influenced by the Linkerd 1.X
proxy
, it comprises an entirely new codebase implemented in the
Rust programming language.

This proxy's features include:

  • Transparent, zero-config proxying for HTTP, HTTP/2, and arbitrary TCP protocols.
  • Automatic Prometheus metrics export for HTTP and TCP traffic;
  • Transparent, zero-config WebSocket proxying;
  • Automatic, latency-aware, layer-7 load balancing;
  • Automatic layer-4 load balancing for non-HTTP traffic;
  • Automatic TLS (experimental);
  • An on-demand diagnostic tap API.

This proxy is primarily intended to run on Linux in containerized
environments like Kubernetes, though it may also work on other
Unix-like systems (like macOS).

The proxy supports service discovery via DNS and the linkerd2
Destination gRPC API
.

The Linkerd project is hosted by the Cloud Native Computing Foundation
(CNCF).

Building the project

We use just-cargo which provide a thin wrapper around just and
cargo.

We recommend that you use the included Dev Container to avoid setting
up the complex development environment by hand.

Just

A justfile is provided to automate most build tasks. It provides
the following recipes:

  • just build -- Compiles the proxy on your local system using cargo
  • just test -- Runs unit and integration tests on your local system using cargo
  • just docker -- Builds a Docker container image that can be used for testing.

Cargo

Usually, Cargo, Rust's package manager, is used to build and test this
project. If you don't have Cargo installed, we suggest getting it via
https://rustup.rs/.

Devcontainer

A Devcontainer is provided for use with Visual Studio Code. It includes all of
the tooling needed to build and test the proxy.

Repository Structure

This project is broken into many small libraries, or crates, so that
components may be compiled & tested independently. The following crate
targets are especially important:

Code of conduct

This project is for everyone. We ask that our users and contributors take a few
minutes to review our code of conduct.

Security

We test our code by way of fuzzing and this is described in FUZZING.md.

A third party security audit focused on fuzzing Linkerd2-proxy was performed by
Ada Logics in 2021. The full report is available
here.

License

linkerd2-proxy is copyright 2018 the linkerd2-proxy authors. All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use
these files except in compliance with the License. You may obtain a copy of the
License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied. See the License for the
specific language governing permissions and limitations under the License.

主要指標

概覽
名稱與所有者linkerd/linkerd2-proxy
主編程語言Rust
編程語言Rust (語言數: 4)
平台
許可證Apache License 2.0
所有者活动
創建於2018-07-07 22:40:57
推送於2025-05-16 20:47:08
最后一次提交
發布數361
最新版本名稱release/v2.297.0 (發布於 2025-05-14 04:07:10)
第一版名稱linkerd2/v18.7.1 (發布於 )
用户参与
星數2k
關注者數38
派生數273
提交數3.5k
已啟用問題?
問題數0
打開的問題數0
拉請求數3377
打開的拉請求數11
關閉的拉請求數534
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?