All Projects → aasaam → palantir

aasaam / palantir

Licence: Apache-2.0, MIT licenses found Licenses found Apache-2.0 LICENSE-APACHE MIT LICENSE-MIT
🔮 HTTP REST API reverse proxy

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to palantir

Ecs Nginx Reverse Proxy
Reference architecture for deploying Nginx on ECS, both as a basic static resource server, and as a reverse proxy in front of a dynamic application server.
Stars: ✭ 245 (+1066.67%)
Mutual labels:  reverse-proxy
spp
A simple and powerful proxy
Stars: ✭ 575 (+2638.1%)
Mutual labels:  reverse-proxy
docker-varnish
Docker image for Varnish Cache (caching HTTP reverse proxy)
Stars: ✭ 46 (+119.05%)
Mutual labels:  reverse-proxy
Fasttunnel
NAT 内网穿透 远程内网计算机 域名访问内网站点 反向代理内网服务 花生壳 端口转发 http代理 微信 小程序 expose a local server behind a NAT or firewall to the internet like ngrok and frp. NAT ssh proxy tunnel reverse-proxy
Stars: ✭ 248 (+1080.95%)
Mutual labels:  reverse-proxy
node-proxy
High performance HTTP and reverse proxy server based on Node.js. 基于 Node.js 的高性能 HTTP 及反向代理服务器,类似nginx。
Stars: ✭ 71 (+238.1%)
Mutual labels:  reverse-proxy
nginx-proxy
Docker container for automatically creating nginx configuration based on active services in docker host.
Stars: ✭ 28 (+33.33%)
Mutual labels:  reverse-proxy
Otunnel
peer-to-peer tunnel tool
Stars: ✭ 224 (+966.67%)
Mutual labels:  reverse-proxy
authentik
The authentication glue you need.
Stars: ✭ 2,941 (+13904.76%)
Mutual labels:  reverse-proxy
docker-ssl-reverse-proxy
Easy-to-use auto-SSL reverse proxy as a Docker container based on Caddy and Let’s Encrypt
Stars: ✭ 22 (+4.76%)
Mutual labels:  reverse-proxy
wsp
HTTP tunnel over Websocket
Stars: ✭ 85 (+304.76%)
Mutual labels:  reverse-proxy
Mongols
C++ high performance networking with TCP/UDP/RESP/HTTP/WebSocket protocols
Stars: ✭ 250 (+1090.48%)
Mutual labels:  reverse-proxy
anti-ddos-lite
Anti-DDoS-Lite (Anti-Crawler app) is a small PHP app to protect your site against DDoS attack.
Stars: ✭ 96 (+357.14%)
Mutual labels:  ddos-protection
medium-go-nginx-docker
Use Nginx with Docker to serve a Golang app.
Stars: ✭ 45 (+114.29%)
Mutual labels:  reverse-proxy
Krakend Ce
KrakenD Community Edition. Make your binary of KrakenD API Gateway
Stars: ✭ 245 (+1066.67%)
Mutual labels:  reverse-proxy
docker-nginx-http3
Docker image for Nginx + HTTP/3 powered by Quiche
Stars: ✭ 19 (-9.52%)
Mutual labels:  reverse-proxy
Varnish Cache
Varnish Cache source code repository
Stars: ✭ 2,769 (+13085.71%)
Mutual labels:  reverse-proxy
roxy
Roxy the Frontend Proxy
Stars: ✭ 52 (+147.62%)
Mutual labels:  reverse-proxy
p3y
A single binary reverse proxy written in go. It was developed for use in Kubernetes, to wrap services like Prometheus with simple BasicAuth and TLS encryption.
Stars: ✭ 15 (-28.57%)
Mutual labels:  reverse-proxy
RealIP
The Spigot, Bungee and Velocity plugin that parses client IP addresses passed from the TCPShield network.
Stars: ✭ 121 (+476.19%)
Mutual labels:  ddos-protection
revp
Reverse HTTP proxy that works on Linux, Windows, and macOS. Made with C++ and Boost.
Stars: ✭ 80 (+280.95%)
Mutual labels:  reverse-proxy

Build Status AppVeyor Build status License: MIT/Apache-2.0 GitHub last commit GitHub code size in bytes Project Status: Active – The project has reached a stable, usable state and is being actively developed. contributions welcome Gitter

palantir

palantir is a HTTP REST API reverse proxy. It will perform load balance, caching, and health check. Also, it will prevent DDOS and will report metrics concerning health status of backend servers.

Important: palantir is still under development and is not ready.

Getting started

If you are using Linux or macOS, you need to install Rust using rustup:

curl https://sh.rustup.rs -sSf | sh

For installation on Windows, read the instructions in rust-lang book.

Then, clone palantir repository:

git clone [email protected]:AASAAM/palantir.git

After modifying config.toml based on your upstream server:

cd palantir
cargo run --release --features fast

Performance

palantir is built in Rust, so it can be compiled to native code for your architecture. Rust, unlike some languages such as Golang, does not have a garbage collector (GC) which constantly looks for no longer used memory while the program runs. Therefore, GC is usually a bad thing for high-throughput / high-load production systems. "In Rust, memory is handled through a system of ownership with a set of rules that the compiler checks at compile time. None of the ownership features slow down your program as it is running" (reference).

In early benchmarks, we observed that palantir competes with the nginx reverse proxy.

License

Licensed under either of

palantir is inspired by actix-reverse-proxy, bloom, rustnish, and weldr.

Contribution

To contribute to palantir, please see CONTRIBUTING and CODE_OF_CONDUCT.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Name Origin

"But alone it could do nothing but see small images of things far off and days remote."
the Lord of the Rings, The Two Towers by John R. R. Tolkien

The proxy's name palantír is derived from the Lord of the Rings, which is an artefact "used for both communication and as a means of seeing events in other parts of the world or in the distant past or in the future" (reference).

This name has been chosen because:

  1. Reverse proxies are communication tools similar to seeing-stones. They could do nothing alone, but can be used to converse.

  2. They may show something from the past (i.e., cached data).

  3. They where designed to guard and unite humans' world, by obtaining information. This reverse proxy tries also to collect metrics and prevent DDOS in collaboration with other microservices.

  4. Palantíri (plural of palantír), may mislead you since the health status of the message is not guaranteed per se. Much work is required for revealing the real health status of the upstream servers, which is going to be developed in health module.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].