프로젝트 소개
Rama는 Rust 언어용 모듈식 서비스 프레임워크로, 네트워크 클라이언트, 서버, 프록시 및 이들의 조합을 구축하도록 설계되었습니다. 이는 명시적이고 조합 가능한 아키텍처를 강조하며, 네트워크 스택은 서비스, 레이어, 전송, 프로토콜 및 상태로 구성되어 직접 조합할 수 있어 시스템의 형태가 코드에서 드러납니다.
주요 기능은 다음과 같습니다:
- **프록시**: 리버스 프록시, TLS 종료, HTTP(S), SOCKS5, SNI, MITM, 투명 프록시, 왜곡 프록시, 네트워크 프록시 및 HAProxy PROXY 프로토콜 지원.
- **웹 애플리케이션 및 API**: 경로 및 매처 라우팅, 타입이 지정된 요청 추출기와 공유 상태를 갖춘 비동기 핸들러, 타입이 지정된 HTML/JSON/스트리밍 응답, 폼 및 파일 업로드, 정적 자산, 인증, CSRF, CORS, 압축, 타임아웃 및 추적을 위한 미들웨어.
- **클라이언트 및 커넥터 스택**: HTTP/1.1, HTTP/2, HTTP/3용 비동기 HTTP(S) 클라이언트(Alt-Svc 검색 포함), WebSocket, gRPC, ttRPC, FastCGI 클라이언트, 사용자 정의 커넥터 스택, 연결 풀, 실제 브라우저 프로필을 사용한 User-Agent 에뮬레이션.
- **서버 및 인그레스 제어**: HTTP/1.1, HTTP/2, HTTP/3 서버, WebSocket, SSE, gRPC, ttRPC, TCP/UDP/QUIC/Unix 전송, 동적 인증서를 사용한 TLS 종료, mTLS, ACME, 프로토콜 검사 및 지문 인식(JA3, JA4, PeetPrint, JA4H, Akamai HTTP/2).
- **애플리케이션 프로토콜 및 게이트웨이**: WebSockets, SSE, Datastar, gRPC, ttRPC, FastCGI, RSS/Atom 피드.
- **프록시 라우팅 및 검색**: 명시적 경로, 업스트림 프록시, PAC 가져오기/평가/생성, 우회 규칙, 경로 실패 캐싱.
- **콘텐츠 적응**: ICAP 클라이언트/서버 및 HTTP 적응 레이어.
- **런타임 및 상호 운용성**: 비동기 서비스, 선택적 블로킹 어댑터, Tower 상호 운용성, 우아한 종료.
- **TLS 및 ID**: Rustls, BoringSSL, TLS 종료, 동적 인증서, mTLS, ACME, 인증서 고정.
- **트래픽 검사**: 프로토콜 검사, HTTP/WebSocket/TLS 캡처 및 가로채기, 웹 UI를 갖춘 MITM 프록시, HAR 기록/재생, curl 내보내기.
- **데이터 처리**: 스트리밍 HTML 재작성, 스트리밍 JSON/JSONPath 선택 및 재작성, JSON-LD.
- **관찰 가능성**: 추적 및 OpenTelemetry, HTTP 및 전송 메트릭, 런타임 원격 측정.
- **임베디드 스크립팅**: PAC 평가 및 생성을 위한 JavaScript 런타임.
- **저수준 네트워킹**: TCP, UDP, QUIC v1/v2, Unix 소켓, DNS, 전송 미들웨어, 연결 풀링.
- **플랫폼 통합**: Apple Network Extension, Apple XPC, Linux tproxy, Windows WFP.
`rama` CLI 바이너리를 사용하면 Rust 코드를 작성하지 않고도 Rama의 일부를 사용할 수 있으며, MITM 모드와 웹 UI를 갖춘 HTTP(S)/SOCKS5 프록시 실행, HTTP/WebSocket 클라이언트, DNS 해석, TLS 프로빙, PAC 평가 및 테스트 서비스를 포함합니다.
이 프레임워크는 Plabayo에 의해 개발되었으며 네트워크 보안, 데이터 추출, API 게이트웨이 및 라우팅에 프로덕션에서 사용됩니다. Rust 1.96이 필요하며 Linux, macOS 및 Windows를 1급 플랫폼으로 지원합니다.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.