{"id":13578623,"url":"https://github.com/flomesh-io/pipy","last_synced_at":"2025-05-15T02:09:39.119Z","repository":{"id":37353778,"uuid":"338057442","full_name":"flomesh-io/pipy","owner":"flomesh-io","description":"Pipy is a programmable proxy for the cloud, edge and IoT.","archived":false,"fork":false,"pushed_at":"2025-05-13T03:07:16.000Z","size":53860,"stargazers_count":793,"open_issues_count":2,"forks_count":75,"subscribers_count":29,"default_branch":"main","last_synced_at":"2025-05-13T04:19:46.754Z","etag":null,"topics":["api-gateway","egress","egress-gateway","forward-proxy","gateway","http-proxy","ingress","ingress-gateway","load-balancer","network-proxy","programmable-network","programmable-proxy","proxy","reverse-proxy","service-mesh","sidecar","sidecar-proxy","socks-proxy","software-loadbalancer"],"latest_commit_sha":null,"homepage":"https://flomesh.io/pipy","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/flomesh-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-02-11T14:47:37.000Z","updated_at":"2025-05-08T03:07:57.000Z","dependencies_parsed_at":"2022-07-14T04:10:31.135Z","dependency_job_id":"b284fc87-27af-4e28-bcbc-dafd9d48d561","html_url":"https://github.com/flomesh-io/pipy","commit_stats":null,"previous_names":[],"tags_count":80,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flomesh-io%2Fpipy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flomesh-io%2Fpipy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flomesh-io%2Fpipy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flomesh-io%2Fpipy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flomesh-io","download_url":"https://codeload.github.com/flomesh-io/pipy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254259384,"owners_count":22040820,"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":["api-gateway","egress","egress-gateway","forward-proxy","gateway","http-proxy","ingress","ingress-gateway","load-balancer","network-proxy","programmable-network","programmable-proxy","proxy","reverse-proxy","service-mesh","sidecar","sidecar-proxy","socks-proxy","software-loadbalancer"],"created_at":"2024-08-01T15:01:32.322Z","updated_at":"2025-05-15T02:09:34.100Z","avatar_url":"https://github.com/flomesh-io.png","language":"C++","funding_links":[],"categories":["\u003ca name=\"cpp\"\u003e\u003c/a\u003eC++","C++","Service Mesh","Reverse Proxies \u0026 Load Balancers"],"sub_categories":[],"readme":"![Pipy Logo](./gui/src/images/pipy-300.png)\n\n[中文](./README_zh.md) | [日本語](./README_jp.md)\n\n# Pipy\n\nPipy is a programmable proxy for the cloud, edge and IoT. It's written in C++, which makes it extremely lightweight and fast. It's also fully programmable by using _PipyJS_, a tailored version from the standard JavaScript language.\n\n## Why Pipy?\n\n### Versatile\n\nAlthough Pipy is mostly used as a high-performance reverse proxy, the real power of Pipy relies on providing you a range of basic pluggable building blocks, aka. \"_filters_\", and not imposing any restrictions on how you combine them. It's entirely up to you. We've seen people using Pipy to convert protocols, record network traffic, sign/verify messages, trigger serverless functions, health-check servers, and more.\n\n### Fast\n\nPipy is written in C++. It leverages asynchronous network I/O. Allocated resources are pooled and reused. Data is transferred internally by pointers whenever possible. It's fast in every way.\n\n### Tiny\n\nA build of Pipy with no built-in GUI frontend resources gives you an executable merely around 10MB with zero external dependencies. You'll experience the fastest download and startup times with Pipy.\n\n### Programmable\n\nAt the core, Pipy is a script engine running PipyJS, a tailored version from ECMA standard JavaScript. By speaking the planet's most widely used programming language, Pipy gives you unparalleled freedom over what you have in other products based on YAML configuration files and the like.\n\n### Open\n\nPipy is more open than open source. It doesn’t try to hide details in a black box. You'll always know what you are doing. It might sound a bit daunting but fear not, it doesn’t require a rocket scientist to understand how the different parts work together. In fact, you’ll only have more fun as you have complete control over everything.\n\n## Quick Start\n\n### Build\n\nThe following prerequisites are required to build Pipy:\n\n* Clang 5.0+\n* CMake 3.10+\n* Node.js v12+ (only if the builtin _Admin UI_ is enabled)\n\nRun the build script to start building:\n\n```\n./build.sh\n```\n\nThe final product can be found at `bin/pipy`.\n\n### Run\n\nRun `bin/pipy` with zero command line options, Pipy will start in repo-mode listening on the default port 6060.\n\n```\n$ bin/pipy\n\n[INF] [admin] Starting admin service...\n[INF] [listener] Listening on port 6060 at ::\n```\n\nOpen the browser of your choice, point to `http://localhost:6060`. You will now see the _Admin UI_ where you can start exploring the documentation and playing around with the tutorial codebases.\n\n## Documentation\n\n* [Overview](https://flomesh.io/pipy/docs/intro/overview)\n* [Getting started](https://flomesh.io/pipy/docs/getting-started/build-install)\n* [Tutorials](https://flomesh.io/pipy/docs/tutorial/01-hello)\n* Reference\n  * [API Reference](https://flomesh.io/pipy/docs/reference/api)\n  * [PipyJS Reference](https://flomesh.io/pipy/docs/reference/pjs)\n* Learning Resources\n  * [Blog](https://blog.flomesh.io/)\n  * [Docker Desktop Extension](https://open.docker.com/extensions/marketplace?extensionId=flomesh/pipy-docker-ext) - Flomesh Pipy Docker Desktop Extension\n  * [InfoQ article](https://www.infoq.com/articles/network-proxy-stream-processor-pipy/) - Brief Introduction\n* [Copyright](COPYRIGHT)\n* [License](LICENSE)\n\n## Compatibility\n\nPipy is being constantly tested on these platforms:\n\n* RHEL/CentOS\n* Fedora\n* Ubuntu\n* Debian\n* macOS\n* FreeBSD\n* OpenBSD\n* OpenEuler\n* OpenWrt\n* Deepin\n* Kylin\n\nPipy runs on the following architectures:\n\n* X86/64\n* ARM64\n* LoongArch\n* Hygon\n\n## Copyright \u0026 License\n\nPlease refer to [COPYRIGHT](https://github.com/flomesh-io/pipy/blob/main/COPYRIGHT) and [LICENSE](https://github.com/flomesh-io/pipy/blob/main/LICENSE).\n\n## Contact\n\n* For security issues, please email to security@flomesh.io\n* For legal issues, please email to legal@flomesh.io\n* For commercial, sales and marketing topics, please email to sales@flomesh.io\n* For other topics not suitable for the public, please email to pipy@flomesh.io\n* For public discussions, please go to GitHub issues: https://github.com/flomesh-io/pipy/issues\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflomesh-io%2Fpipy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflomesh-io%2Fpipy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflomesh-io%2Fpipy/lists"}