rama

plabayo/rama はRust製のモジュール型サービスフレームワーク。ネットワークパケットの移動・変換を目的としており、クライアント・サーバー・プロキシ、あるいはそれらを組み合わせたシステムを構築するために使う。ベルギー・ゲント拠点のソフトウェアスタジオPlabayoが開発している。ライセンスはMIT / Apache 2.0のデュアルライセンス。

設計思想

「意図的に明示的(intentionally explicit)」であることが特徴。ネットワークスタックをservice・layer・transport・protocol・stateという要素の組み合わせとして構成し、システムの構造がコード上に可視化されるようにしている。ランタイムはTokio専用のasync-first設計。

対応プロトコル・機能

  • トランスポート: TCP、UDP、Unixドメインソケット
  • HTTP: HTTP/1・HTTP/2のサーバー/クライアント、WebSocketgRPC、FastCGI
  • TLS: Rustls / BoringSSLによるTLS終端、動的証明書、mTLS、ACME対応
  • プロキシプロトコル: HTTP CONNECT、HTTPS CONNECT、SOCKS5、HAProxy PROXYプロトコル
  • その他: DNS、テレメトリ、フィンガープリンティングなど

想定用途

  • セキュリティ分析向けのトラフィック検査
  • Webサービス開発
  • カスタムユーザーエージェントを持つクライアントのエミュレーション
  • テスト用の接続制御
  • 高性能なリバースプロキシ・APIゲートウェイの構築

本番環境でネットワークセキュリティ、データ抽出、APIゲートウェイ、ルーティングなどの用途で使われている実績があるとのこと。同じくリバースプロキシ用途で使われるGo製のTraefikとは異なり、rama自体はスタンドアロン製品ではなく、Rustコードでネットワークスタックを組み立てるためのライブラリ/フレームワークという位置づけ。

出典

#rust #networking #proxy

作成日時: 2026-08-22 07:26 / 更新日時: 2026-08-22 07:28