{"id":28495479,"url":"https://github.com/aasaam/palantir","last_synced_at":"2025-07-02T08:30:40.136Z","repository":{"id":48448271,"uuid":"191799100","full_name":"aasaam/palantir","owner":"aasaam","description":" :crystal_ball: HTTP REST API reverse proxy","archived":false,"fork":false,"pushed_at":"2021-07-26T01:15:24.000Z","size":387,"stargazers_count":26,"open_issues_count":9,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-08T11:11:32.277Z","etag":null,"topics":["cache-service","ddos-protection","reverse-proxy"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aasaam.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE-APACHE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-06-13T16:38:16.000Z","updated_at":"2025-06-07T10:14:22.000Z","dependencies_parsed_at":"2022-08-24T06:10:22.966Z","dependency_job_id":null,"html_url":"https://github.com/aasaam/palantir","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aasaam/palantir","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aasaam%2Fpalantir","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aasaam%2Fpalantir/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aasaam%2Fpalantir/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aasaam%2Fpalantir/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aasaam","download_url":"https://codeload.github.com/aasaam/palantir/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aasaam%2Fpalantir/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263102342,"owners_count":23414098,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cache-service","ddos-protection","reverse-proxy"],"created_at":"2025-06-08T11:10:38.956Z","updated_at":"2025-07-02T08:30:40.127Z","avatar_url":"https://github.com/aasaam.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/AASAAM/palantir.svg?branch=master)](\u003chttps://travis-ci.org/AASAAM/palantir\u003e)\n[![AppVeyor Build status](https://ci.appveyor.com/api/projects/status/d1cmo37ht3mbha38/branch/master?svg=true)](https://ci.appveyor.com/project/MaaniBeigy/palantir-isq74/branch/master)\n[![License: MIT/Apache-2.0](\u003chttps://img.shields.io/badge/license-MIT%2FApache--2.0-brightgreen.svg\u003e)](#license)\n![GitHub last commit](https://img.shields.io/github/last-commit/AASAAM/palantir.svg?color=brightgreen)\n![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/AASAAM/palantir.svg?color=brightgreen)\n[![](\u003chttps://img.shields.io/badge/devel%20version-0.1.0-yellow.svg\u003e)](\u003chttps://github.com/AASAAM/palantir\u003e)\n[![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)\n[![contributions welcome](\u003chttps://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat\u003e)](\u003chttps://github.com/AASAAM/palantir/issues\u003e)\n[![Gitter](https://badges.gitter.im/AASAAM/palantir.svg)](https://gitter.im/AASAAM/palantir?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge)\n=======\n\n\u003cimg src=\"./palantir.svg\" align=\"right\" width=\"192\" /\u003e\n\n# palantir\n\n**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.\n\n**Important: palantir is still under development and is not ready**.\n\n## Getting started\n\nIf you are using Linux or macOS, you need to install **Rust** using [rustup](\u003chttps://rustup.rs/\u003e):\n\n```shell\ncurl https://sh.rustup.rs -sSf | sh\n```\n\nFor installation on Windows, read the instructions in [rust-lang book](\u003chttps://doc.rust-lang.org/book/ch01-01-installation.html#installing-rustup-on-windows\u003e).\n\nThen, clone `palantir` repository:\n\n```shell\ngit clone git@github.com:AASAAM/palantir.git\n```\n\nAfter modifying [config.toml](./config.toml) based on your upstream server:\n\n```shell\ncd palantir\ncargo run --release --features fast\n```\n\n### Performance\n\npalantir 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)](\u003chttps://doc.rust-lang.org/book/ch04-01-what-is-ownership.html?highlight=garbage,collector#memory-and-allocation\u003e).\n\nIn early [benchmarks](./benches/README.md), we observed that palantir competes with the nginx reverse proxy.\n\n### License\n\nLicensed under either of\n\n- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or \u003chttp://apache.org/licenses/LICENSE-2.0\u003e)\n- MIT license ([LICENSE-MIT](LICENSE-MIT) or \u003chttp://opensource.org/licenses/MIT\u003e)\n\npalantir is inspired by [actix-reverse-proxy](\u003chttps://github.com/felipenoris/actix-reverse-proxy\u003e), [bloom](\u003chttps://github.com/valeriansaliou/bloom\u003e), [rustnish](\u003chttps://github.com/klausi/rustnish\u003e), and [weldr](\u003chttps://github.com/hjr3/weldr\u003e).\n\n### Contribution\n\nTo contribute to palantir, please see [CONTRIBUTING](./CONTRIBUTING.md) and [CODE_OF_CONDUCT](./CODE_OF_CONDUCT.md).\n\nUnless 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.\n\n### Name Origin\n\n**\"But alone it could do nothing but see small images of things far off and days remote.\" \u003cbr/\u003e*the Lord of the Rings*, *The Two Towers* by John R. R. Tolkien**\n\nThe 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)](\u003chttps://en.wikipedia.org/wiki/Palant%C3%ADr\u003e).\n\nThis name has been chosen because:\n\n1. Reverse proxies are communication tools similar to seeing-stones. They could do nothing alone, but can be used to converse.\n  \n1. They may show something from the past (*i.e.,* cached data).\n\n1. 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.\n\n1. *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**.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faasaam%2Fpalantir","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faasaam%2Fpalantir","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faasaam%2Fpalantir/lists"}