본문으로 건너뛰기

© 2026 Molayo

GH Trending릴리즈2026. 05. 08. 23:00

cloudflare/pingora

요약

Pingora는 Rust로 작성된 고성능 네트워크 프레임워크로, 빠르고 신뢰할 수하며 프로그래밍 가능한 시스템 구축을 목표로 합니다. 초당 4천만 건 이상의 요청 처리가 검증되었으며, HTTP/2 엔드 투 엔드 프록시 기능과 다양한 로드 밸런싱 및 장애 복구 전략을 제공합니다. 보안성을 최우선으로 고려하여 C/C++ 기반 서비스의 메모리 안전한 대안을 제시하며, 개발자가 커스텀 로직을 쉽게 구현할 수 있도록 높은 수준의 프로그래밍 가능성을 자랑합니다.

핵심 포인트

  • Rust 기반의 고성능 네트워크 프레임워크로, 초당 4천만 건 이상의 트래픽 처리가 검증됨.
  • HTTP/2 엔드 투 엔드 프록시 기능을 제공하며, gRPC 및 WebSocket 프록싱도 지원함.
  • 보안성이 최우선 목표이며, C/C++ 기반 서비스 대비 메모리 안전성을 크게 향상시킴.
  • 커스터마이징 가능한 로드 밸런싱 및 장애 복구 전략을 통해 유연한 네트워크 시스템 구축이 가능함.
  • 다양한 서브 크레이트(예: pingora-load-balancing, pingora-memory-cache)를 제공하여 모듈화된 개발 환경을 지원함.

Pingora 는 빠르고 신뢰할 수 있으며 프로그래밍 가능한 네트워크 시스템을 구축하기 위한 Rust 프레임워크입니다.

Pingora 는 몇 년간 초당 4,000 만 개 이상의 인터넷 요청을 처리해 왔으며 battle tested(전투 테스트)되었습니다.

  • Async Rust: 빠르고 신뢰할 수 있음
  • HTTP 1/2 엔드 투 엔드 프록시
  • TLS over OpenSSL, BoringSSL, s2n-tls, 또는 rustls(실험적)
  • gRPC 와 websocket 프록싱
  • Graceful reload
  • 커스터마이징 가능한 load balancing 과 failover 전략
  • 다양한 observability 도구 지원

Security(보안) 은 최우선 우선순위입니다: Pingora 는 C/C++ 로 작성된 서비스의 더 memory safe(메모리 안전) 대안입니다.

performance-sensitive(성능 민감형): Pingora 는 빠르고 효율적입니다.

customization(커스터마이징): Pingora 프록시 프레임워크가 제공하는 API 는 매우 프로그래밍 가능합니다.

load balancer 를 구축하는 것이 얼마나 쉬운지 확인하기 위해 빠른 시작 가이드를 참조하세요.

사용자 가이드는 Pingora 서버를 구성하고 실행하는 방법, 그리고 Pingora 의 프레임워크 위에 커스텀 HTTP 서버와 프록시 로직을 구축하는 방법에 대한 더 많은 주제를 다룹니다.

모든 crate 에 대한 API 문서도 제공됩니다.

  • Pingora: 네트워크 시스템 및 프록시를 구축하기 위한 "public facing(공식 공개용)" crate
  • Pingora-core: 이 crate 는 프로토콜, 기능 및 기본 traits 를 정의합니다
  • Pingora-proxy: HTTP 프록시를 구축하기 위한 로직 및 API
  • Pingora-error: Pingora crates 전반에 걸쳐 사용되는 공통 error type
  • Pingora-http: HTTP header 정의 및 API
  • Pingora-openssl & pingora-boringssl: SSL 관련 extensions 과 API
  • Pingora-ketama: Ketama 일관성 알고리즘
  • Pingora-limits: 효율적인 counting algorithms
  • Pingora-load-balancing: pingora-proxy 에 대한 load balancing algorithm extensions
  • Pingora-memory-cache: cache lock 을 통한 cache stampede 를 방지하는 Async in-memory caching
  • Pingora-s2n: s2n-tls 와 관련된 SSL extensions 과 API
  • Pingora-timeout: 더 효율적인 async timer 시스템
  • TinyUfo: pingora-memory-cache 뒤에 있는 caching algorithm

Pingora 프록시 통합과 caching 은 experimental(실험적) 으로 간주되어야 하며, 따라서 caching 관련 API 는 현재 매우 volatile(변동적) 입니다.

Linux 는 tier 1 환경이며 주된 초점입니다.

대부분의 코드를 Unix 환경에서 컴파일할 수 있도록 최선을 다합니다. 이는 macOS 와 같은 Unix-like 환경에서 Pingora 를 개발하는 데 더 쉬운 시간을 제공하기 위함입니다 (일부 기능은 누락될 수 있음).

Windows 지원은 커뮤니티의 best effort(최선의 노력) 에 의해서만 예비적입니다.

x86_64 및 aarch64 아키텍처 모두 지원됩니다.

Pingora 는 MSRV(최소 지원 Rust 버전) 정책으로 6 개월을 유지합니다. 이는 새로운 Rust 버전을 사용하는 PR 을 받더라도, 사용된 새 Rust 버전이 최소 6 개월 이상 된 경우를 의미합니다. 그러나 우리는 workspace 전체의 최고 MSRV 를 충분히 설득력 있는 이유 없이 bump(업데이트)하지 않습니다.

현재 MSRV 는 1.84 입니다.

현재 모든 crates 가 rust-version 을 강제하지 않습니다.
낮은 버전에서도 일부 crates 를 사용할 수 있기 때문입니다.

이 저장소의 일부 crates 는 빌드하기 위해 추가 도구 및 라이브러리를 필요로 합니다:

  • Clang 이 시스템에 설치되어 있는지 확인하세요 (boringssl 에게서)
  • Perl 5 가 시스템에 설치되어 있는지 확인하세요 (openssl 에게서)

기여 가이드를 참조하세요.

이 프로젝트는 Apache License, Version 2.0 하에 라이선스됩니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub Trending Rust (weekly)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
3

댓글

0