Add a README (#4)

This commit is contained in:
Oliver Gould 2018-07-11 16:01:54 -07:00 committed by GitHub
parent 8db765c7bc
commit 3c48ba7f62
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 110 additions and 0 deletions

110
README.md Normal file
View File

@ -0,0 +1,110 @@
![linkerd2][logo]
[![Build Status][ci-badge]][ci]
[![GitHub license][license-badge]](LICENSE)
[![Slack Status][slack-badge]][slack]
This repo contains the transparent proxy component of [Linkerd2][linkerd2].
While the Linkerd2 proxy is heavily influenced by [the Linkerd 1.X
proxy][linkerd1], it comprises an entirely new codebase implemented in the
[Rust programming language][rust].
This proxy's features include:
* Transparent, zero-config proxying for HTTP, HTTP/2, and arbitrary TCP protocols.
* Automatic [Prometheus][prom] metrics export for HTTP and TCP traffic;
* Transparent, zero-config WebSocket proxying;
* Automatic, latency-aware, layer-7 [load balancing][loadbalancing];
* 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][k8s], 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][linkerd2-proxy-api].
The Linkerd project is hosted by the Cloud Native Computing Foundation
([CNCF][cncf]).
## Building the project
A `Makefile` is provided to automate most build tasks. It provides the
following targets:
* `make build` -- Compiles the proxy on your local system using `cargo`
* `make test` -- Runs unit and integration tests on your local system using `cargo`
* `make test-flakey` -- Runs _all_ tests, including those that may fail spuriously
* `make package` -- Builds a tarball at
`target/release/linkerd2-proxy-${PACKAGE_VERSION}.tar.gz`. If
`PACKAGE_VERSION` is not set in the environment, the local git SHA is used.
* `make docker` -- Builds a Docker container image that can be used for testing.
If the `DOCKER_TAG` environment variable is set, the image is given this
name. Otherwise, the image is not named.
### Cargo
Usually, [Cargo][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/.
## Artifacts
Each version of the _master_ branch is published to
`build.l5d.io/linkerd2-proxy/linkerd2-proxy-$PACKAGE_VERSION.tar.gz`. The most recent
version (and the package's SHA256 sum) can be discovered via:
```sh
:; curl https://build.l5d.io/linkerd2-proxy/latest.txt
```
The SHA256 sum of each package version is found at:
```sh
:; curl https://build.l5d.io/linkerd2-proxy/linkerd2-proxy-$PACKAGE_VERSION.txt
```
## 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][coc].
## License
Conduit 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.
<!-- refs -->
[cargo]: https://github.com/rust-lang/cargo/
[ci]: https://travis-ci.org/linkerd/linkerd2-proxy
[ci-badge]: https://travis-ci.org/linkerd/linkerd2-proxy.svg?branch=master
[cncf]: https://cncf.io/
[coc]: https://github.com/linkerd/linkerd/wiki/Linkerd-code-of-conduct
[k8s]: https://kubernetes.io/
[license-badge]: https://img.shields.io/github/license/linkerd/linkerd2.svg
[linkerd1]: https://github.com/linkerd/linkerd
[linkerd2]: https://github.com/linkerd/linkerd2
[linkerd2-proxy-api]: https://github.com/linkerd/linkerd2-proxy-api
[loadbalancing]: https://linkerd.io/features/load-balancing/
[logo]: https://user-images.githubusercontent.com/9226/33582867-3e646e02-d90c-11e7-85a2-2e238737e859.png
[prom]: https://prometheus.io/
[rust]: https://www.rust-lang.org/
[slack-badge]: https://slack.linkerd.io/badge.svg
[slack]: https//slack.linkerd.io
[twitter]: https://twitter.com/linkerd/