• Stars
    star
    768
  • Rank 59,159 (Top 2 %)
  • Language
    C++
  • License
    Other
  • Created almost 4 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Pipy is a programmable proxy for the cloud, edge and IoT.

Pipy Logo

中文 | 日本語

Pipy

Pipy 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.

Why Pipy?

Versatile

Although 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.

Fast

Pipy 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.

Tiny

A 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.

Programmable

At 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.

Open

Pipy 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.

Quick Start

Build

The following prerequisites are required to build Pipy:

  • Clang 5.0+
  • CMake 3.10+
  • Node.js v12+ (only if the builtin Admin UI is enabled)

Run the build script to start building:

./build.sh

The final product can be found at bin/pipy.

Run

Run bin/pipy with zero command line options, Pipy will start in repo-mode listening on the default port 6060.

$ bin/pipy

[INF] [admin] Starting admin service...
[INF] [listener] Listening on port 6060 at ::

Open 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.

Documentation

Compatibility

Pipy is being constantly tested on these platforms:

  • RHEL/CentOS
  • Fedora
  • Ubuntu
  • Debian
  • macOS
  • FreeBSD
  • OpenBSD
  • OpenEuler
  • OpenWrt
  • Deepin
  • Kylin

Pipy runs on the following architectures:

  • X86/64
  • ARM64
  • LoongArch
  • Hygon

Copyright & License

Please refer to COPYRIGHT and LICENCE.

Contact

More Repositories

1

ztm

ZTM (Zero Trust Mesh) is a privacy-first open-source decentralized network software based on HTTP/2 tunnels. Experience boundless connectivity and mesh the globe!
JavaScript
326
star
2

fsm

Lightweight service mesh for Kubernetes East-West and North-South traffic management, uses ebpf for layer4 and pipy proxy for layer7 traffic management, support multi cluster network.
Go
55
star
3

ErieCanal

ErieCanal is a MCS(multi cluster service https://github.com/kubernetes-sigs/mcs-api) implementation, provides MCS, Ingress, Egress, GatewayAPI for Kubernetes clusters.
Go
51
star
4

fsm-classic

FSM(Flomesh Service Mesh ) is Kubernetes North-South traffic manager, provides Ingress controllers, Gateway API, Load Balancer, and cross-cluster service registration and service discovery. FSM uses Pipy(https://github.com/flomesh-io/pipy) as data plane and suitable for cloud, edge and IoT.
Go
42
star
5

osm-edge

osm-edge is a lightweight service mesh for the edge-computing. It's forked from openservicemesh/osm and use pipy as sidecar proxy.
Go
39
star
6

traffic-guru

TrafficGuru is one stop GUI for cloud native traffic management of Service Mesh, Ingress, GatewayAPI, ELB, MCS, API management.
CSS
20
star
7

flomesh-bookinfo-demo

A demo micro-service application, copied and combined from istio/samples/bookinfo, rh-app-dev-practice/bookinfo-spring-boot and dt-bookinfo/bookinfo-productpage.
Java
14
star
8

pipy-demos

Central repository for Pipy demos
C
11
star
9

fgw

A Gateway API(https://gateway-api.sigs.k8s.io) implementation, build on top of pipy.
JavaScript
11
star
10

pipy-operator

CRD&Operator implement reference for running pipy in k8s.
7
star
11

fnlb

fnlb(Flomesh network load balancer) is an ebpf based layer 4 load balancer.
Go
6
star
12

ztm-draft

ZTM(Zero Trust Mesh) is an open source http2 tunnel based decentralized network software. Boundless Connectivity, Meshing the World!
Vue
4
star
13

service-mesh-demo

Service mesh demo on cross cluster booking application.
JavaScript
2
star
14

flb

Flomesh Load Balancer(FLB) is a layer-4 software load balancer build on top of pipy proxy and ebpf.
C
2
star
15

rust-ztm

Rust
2
star
16

service-mesh-dubbo-demo

JavaScript
1
star
17

fgw-docs

HTML
1
star
18

pipy-guide

1
star
19

training-materials

1
star
20

flomesh-io.github.io

Ruby
1
star
21

tools

Python
1
star