1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/muofeng-pipy

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
FAQ
Loading...
README.md

Pipy

Pipy — это небольшой, высокопроизводительный, стабильный и программируемый прокси. Написанный на C++, созданный на основе библиотеки асинхронного ввода-вывода Asio, Pipy отличается лёгкостью и быстротой работы, что делает его одним из лучших вариантов для sidecar в сервисной сетке.

Благодаря встроенной поддержке JavaScript, предоставляемой QuickJS, Pipy легко настраивается и предсказуем в работе без накладных расходов на сборку мусора, которые можно наблюдать у других программных аналогов.

В основе Pipy лежит модульная конструкция с множеством небольших модулей многократного использования, которые могут быть объединены в цепочку для создания конвейера, через который проходят и обрабатываются сетевые данные. Дизайн Pipy делает его достаточно универсальным не только для sidecar, но и для других случаев использования, связанных с промежуточной обработкой сообщений между сетевыми узлами.

Совместимость

Pipy разработан для обеспечения высокой совместимости с различными операционными системами и архитектурами процессоров. Pipy полностью протестирован на следующих платформах:

  • CentOS 7;
  • Ubuntu 18/20;
  • FreeBSD 12/13;
  • macOS Big Sur.

CentOS7/REHL7 или FreeBSD рекомендуются для производственных сред.

Как собрать

Сборка с нуля

Перед сборкой необходимо установить следующие инструменты:

  • Clang 5.0+;
  • CMake 3.0+.

После установки указанных инструментов запустите скрипт сборки, чтобы начать сборку:

./build.sh

Исполняемый файл находится в папке bin/. Введите bin/pipy -h для получения дополнительной информации.

Создание образа Docker

Чтобы создать образ Docker, выполните следующие команды:

cd pipy
sudo docker build --squash --rm -t pipy .

Примечание: Для меньшего размера образа вы можете использовать опцию --squash. Это экспериментальная функция, поэтому вам нужно добавить { "experimental": true } в /etc/docker/daemon.json и перезапустить демон Docker, чтобы включить её.

Для получения дополнительной информации об опции Docker --squash обратитесь к документации Docker (https://docs.docker.com/engine/reference/commandline/image_build/).

Быстрый старт

Установка с помощью RPM

yum -y install http://repo.flomesh.cn/pipy/pipy-latest.el7_pl.x86_64.rpm

Отображение параметров командной строки

$ pipy --help

Список модулей и параметров

$ pipy --list-modules
$ pipy --help-modules

Запуск в CLI

Рассмотрим пример эхо-сервера в test/001-echo/. Чтобы запустить один экземпляр Pipy, который автоматически перезагружается при изменении файла конфигурации:

$ pipy test/001-echo/pipy.cfg --watch-config-file

Чтобы запустить два экземпляра Pipy с балансировкой нагрузки на одном порту:

$ pipy test/001-echo/pipy.cfg --reuse-port &
$ pipy test/001-echo/pipy.cfg --reuse-port &

Запуск с Docker

Образ Docker Pipy можно настроить с помощью нескольких переменных среды:

  • PIPY_CONFIG_FILE=</path/to/config-file> для расположения файла конфигурации Pipy;
  • PIPY_SPAWN=n для количества экземпляров Pipy, которые вы хотите запустить, где n — количество экземпляров за вычетом 1. Например, вы используете PIPY_SPAWN=3 для 4 экземпляров.
docker run -it --rm -e PIPY_CONFIG_FILE=/etc/pipy/test/001-echo/pipy.cfg flomesh/pipy:latest
docker run -it --rm -e PIPY_CONFIG_FILE=/etc/pipy/test/011-serve-static/pipy.cfg -e PIPY_SPAWN=1 -p 8000:6000 flomesh/pipy:latest

Pipy также поддерживает прозрачный прокси в среде Docker, где включена возможность NET_ADMIN путём добавления опции --cap-add NET_ADMIN к команде запуска:

docker run -it --rm -e PIPY_CONFIG_FILE=/etc/pipy/test/001-echo/pipy.cfg --cap-add NET_ADMIN flomesh/pipy:latest

Запуск на Kubernetes

Вы можете запустить Pipy на Kubernetes с помощью pipy-operator:

git clone https://github.com/flomesh-io/pipy-operator
cd pipy-operator
kubectl apply -f etc/cert-manager-v1.1.0.yaml
kubectl apply -f artifact/pipy-operator.yaml
kubectl apply -f config/samples/standalone/001-echo.yaml
kubectl apply -f config/samples/ingress/001-routing.yaml
kubectl apply -f config/samples/sidecar/007-deployment-pipy.yaml

Документация

Документацию по Pipy вы можете найти в папке docs/. Обзор [https://github.com/flomesh-io/pipy/blob/main/docs/overview.md]

Конфигурация [https://github.com/flomesh-io/pipy/blob/main/docs/configuration.md]

Авторские права и лицензия

См. разделы COPYRIGHT и LICENCE.

Контакты

Переводы

Китайская версия

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
C++ и 6 других языков
BSL-1.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/muofeng-pipy.git
git@api.gitlife.ru:oschina-mirror/muofeng-pipy.git
oschina-mirror
muofeng-pipy
muofeng-pipy
main