OpenResty のプライベートライブラリは、OpenResty Inc. が構築・メンテナンスする商用・本番グレードの Lua ライブラリおよび Nginx モジュールです。その中にはいくつかが、よく知られたオープンソースコンポーネント——lua-resty-redislua-resty-httplua-cjson、さらには LuaJIT 自体——のドロップイン置換または高度な拡張であり、ピュア C コアによる高スループット、予測可能なリソース使用量、商用サポートを提供します。

全カタログ

ライブラリ機能対応するオープンソース詳細
luajit-plus最適化された LuaJIT エンジン:アロケータレベルでの積極的な RSS メモリ回収、テーブル操作の高速化(一部シナリオで数千倍)、追加の言語機能LuaJITブログ · ドキュメント
jit.cjson(luajit-plus に同梱)JSON エンコードが最大 18 倍、デコードが最大 6 倍高速(オープンソースの Lua-cjson モジュール比);JSON コメントと末尾カンマをサポートlua-cjsonブログ · マニュアル
lua-resty-jsonbバイナリ JSONB 形式で JSON データを操作・保存し、シリアライゼーション/デシリアライゼーションを回避、GC オブジェクトを削減lua-cjson(代替アプローチ)ドキュメント
lua-resty-tls-sessionクラスタ全体の TLS セッションチケットキー同期とゼロダウンタイムローテーション——nginx -s reload 不要—(標準 Nginx の TLS 操作のギャップを埋める)ブログ · ドキュメント
lua-resty-http-fastピュア C コアによる高性能 HTTP クライアント、100% ノンブロッキング I/O、オープンソースの lua-resty-http と一貫したインターフェースlua-resty-httpドキュメント
lua-resty-kafka-fastlibrdkafka を活用した専用実行ユニットで動作する Kafka プロデューサー/コンシューマー;バッチ書き込みで 1 コアあたり 250,000 メッセージ/秒lua-resty-kafkaブログ · マニュアル
lua-resty-redis-fastピュア C コアの Redis クライアント——オープンソースの lua-resty-redis の最大 2.5 倍の性能lua-resty-redisドキュメント
lua-resty-redis-cluster-fast同じ C ベースの cosocket コア上に Redis Cluster サポートを追加lua-resty-redis(クラスタモード)ドキュメント
lua-resty-mysql-fastピュア C コアによる高性能 MySQL クライアント、100% ノンブロッキング I/Oドキュメント
lua-resty-memcached-fastピュア C コアによる高性能 memcached クライアント、100% ノンブロッキング I/Oドキュメント
lua-resty-dymetricsロックフリーの高性能メトリクス収集、JSON または Prometheus 出力に対応ドキュメント
lua-resty-limit-traffic-dynamicCPU 使用率を指定範囲内に維持する動的 HTTP リクエストレート制限ドキュメント
lua-io-nginx-module-plusノンブロッキングのファイル読み書き、オープンソース版よりも安定性が高いlua-io-nginx-moduleドキュメント
openresty-minifiersNginx 出力フィルターとしてのストリーミング JS/CSS/HTML ミニファイ——1 コアあたり 120+ MB/s、O(1) メモリブログ · ドキュメント
dubbo-nginx-module-plus深く最適化された Dubbo ゲートウェイモジュール、オープンソース版より安定性・性能ともに向上dubbo-nginx-moduleドキュメント
zstd-nginx-module-plusZstandard (zstd) 圧縮——gzip 圧縮の 2〜5 倍のパフォーマンス——オープンソース版のバグ修正と動的制御用の Lua インターフェースを追加zstd-nginx-moduleドキュメント

シナリオ別の内容

データベースおよびキャッシュクライアント。 lua-resty-redis-fastlua-resty-redis-cluster-fastlua-resty-mysql-fastlua-resty-memcached-fast は同じ設計方針を共有しています:ピュア C コアと 100% ノンブロッキング I/O で再実装された高性能クライアントです。

HTTP およびメッセージング。 lua-resty-http-fast はオープンソースの lua-resty-http と一貫したインターフェースを維持;lua-resty-kafka-fast は Kafka 書き込みをリクエストパスから完全に切り離し;dubbo-nginx-module-plus は Dubbo ゲートウェイデプロイメントに対応します。

JSON およびデータ処理。 jit.cjsonlua-cjson のドロップイン置換——コード変更不要;lua-resty-jsonb はさらに一歩進んで、バイナリ JSONB 上で直接操作することでシリアライゼーション自体を回避します。

コンテンツと圧縮。 openresty-minifiers は、上流のビルドパイプラインを変更できない場合にゲートウェイで JS/CSS/HTML をインフライトでミニファイ;zstd-nginx-module-plus は本番環境で鍛えられた堅牢な Zstandard 圧縮を Nginx にもたらします。

トラフィック制御とオブザーバビリティ。 lua-resty-limit-traffic-dynamic は CPU 使用率ターゲットに対してレート制限を動的に調整;lua-resty-dymetrics はロックフリーでメトリクスを収集し、JSON または Prometheus フォーマットでエクスポートします。

TLS とランタイム。 lua-resty-tls-session はロードバランス構成のクラスタ全体で TLS セッション再開を確実に機能させ、ゼロダウンタイムのキーローテーションを実現;luajit-plus は LuaJIT ランタイムを置換し、RSS の肥大化と OOM Kill を根本的に解消;lua-io-nginx-module-plus はイベントループをブロックせずにファイル I/O を処理します。

ライセンスの仕組み

これらのライブラリは、OpenResty 自体の開発・メンテナンスチームである OpenResty Inc. が構築したプロプライエタリソフトウェアです。サブスクリプショントークンで認証された標準のパッケージマネージャ(aptyum)を通じて、プライベートパッケージとして配布され、継続的なアップデートとセキュリティ修正を受けられます。評価、料金、またはデプロイメントのガイダンスについては、製品ページをご覧いただくか、エンジニアリングチームにお問い合わせください。

FAQ

Q: OpenResty プライベートライブラリはオープンソースですか? A: いいえ。OpenResty Inc. が構築した商用プロプライエタリライブラリです。その多くは人気のあるオープンソースコンポーネント(lua-resty-redis、lua-resty-http、lua-cjson、LuaJIT)を強化または置換するものですが、プライベートライブラリ自体は商用ライセンスでの提供となります。

Q: 使用するためにコードを変更する必要がありますか? A: ライブラリによります。いくつかはドロップインで使えます:jit.cjson は既存の require "cjson" をそのまま動作させ、luajit-plus はコード変更なしでランタイムを置換し、openresty-minifiers は設定のみで有効化できます。lua-resty-kafka-fast などのクライアントライブラリは、独自の(意図的にコンパクトな)API を提供しています。

Q: どのようにインストールしますか? A: 通常のパッケージマネージャ(apt-get install / yum install)を使用し、OpenResty Inc. のプライベートパッケージリポジトリからサブスクリプショントークンで認証してインストールします。各ライブラリのインストール手順は公式ドキュメントをご参照ください。