イベントループを備え、TCP/UDP、SSL、HTTP、WebSocket、MQTT、Redisのクライアント/サーバーに対応するクロスプラットフォームのC/C++ネットワークライブラリ。
acl-dev/acl
コルーチン、HTTP、Redis、MQTT、データベースクライアントを備えた、C/C++向けクロスプラットフォーム通信ライブラリ兼サーバーフレームワーク。
- スター
- 3,106
- フォーク
- 947
- 未解決の Issue
- 40
- 最終コミット
- 26 日前
これは何?
Acl(Advanced C/C++ Library)は、クロスプラットフォームのネットワークライブラリ兼サーバー開発フレームワークです。Linux、Windows、macOS、FreeBSD、Solaris、Android、iOS、HarmonyOSに対応し、HTTP/HTTPS、WebSocket、SMTP、MQTT、Redis、Memcached、Beanstalkの各クライアントを内蔵しています。また、XML、JSON、MIME、Base64のエンコード/デコード機能も備えています。
システムのIO APIをフックして、ブロッキング形式で書いたコードを非同期に実行できるコルーチンモジュールと、プロセス、スレッド、AIO、コルーチン、UDP、スケジュールトリガー型のサービステンプレートを備えたサーバーフレームワークを提供します。Redisクライアントは、コネクションプールを備え、スタンドアロン、クラスタ、パイプラインの各モードに対応します。また、MySQL、PostgreSQL、SQLiteを共通の抽象化レイヤーから扱えます。
ビルド方法はMake、CMake、XMakeに対応しています。Windows向けのVisual Studioプロジェクトに加え、モバイルプラットフォーム向けのXcode、Android Studio、DevEco Studioプロジェクトも用意されています。ライセンスはLGPL-2.1です。
主な機能
- 01TCP、UDP、UNIXソケットに対応したクロスプラットフォームC/C++ネットワーク機能
- 02システムのIO APIをフックし、共有スタックモードも利用できるコルーチンライブラリ
- 03Servlet風のインターフェース、Gzip、WebSocketを備えたHTTP/1.1クライアント/サーバー
- 04コネクションプールを備え、スタンドアロン、クラスタ、パイプラインの各モードに対応するRedisクライアント
- 05ストリーミングパーサーを備えたMQTT 3.1.1プロトコル実装
- 06MySQL、PostgreSQL、SQLiteを共通のインターフェースで扱う機能
ユースケース
- コルーチンを使った、高並行なCまたはC++バックエンドサービスの構築
- モバイルや組み込み環境向けのRedis、MQTT、HTTPクロスプラットフォームクライアントの開発
- プロセス、スレッド、AIOの各サービスモデルを使ったネットワークサーバーの作成
- MySQL、PostgreSQL、SQLiteで共通のAPIを必要とするデータベースアプリケーションの開発
クイックスタート
- 1
READMEのセクション3.1にあるコンパイルガイドに従って、お使いのプラットフォーム向けにAclをコンパイルします
使う前に知っておきたいこと
- LGPL-2.1の下でライセンスされています。弱いコピーレフトライセンスですが、プロプライエタリ製品にリンクする際は注意が必要です。
- 多数のモジュールを含む大規模なC/C++フレームワークのため、習得にかなり時間がかかります。
収録されている特集
トピック
よくある質問
- acl とは?
- コルーチン、HTTP、Redis、MQTT、データベースクライアントを備えた、C/C++向けクロスプラットフォーム通信ライブラリ兼サーバーフレームワーク。 Acl(Advanced C/C++ Library)は、クロスプラットフォームのネットワークライブラリ兼サーバー開発フレームワークです。Linux、Windows、macOS、FreeBSD、Solaris、Android、iOS、HarmonyOSに対応し、HTTP/HTTPS、WebSocket、SMTP、MQTT、Redis、Memcached、Beanstalkの各クライアントを内蔵しています。また、XML、JSON、MIME、Base64のエンコード/デコード機能も備えています。
- acl は無料で使えますか?ライセンスは?
- acl は LGPL-2.1 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- acl は今もメンテナンスされていますか?
- 活発にメンテナンス中。acl の最終コミットは 2026年10月12日 です。
- acl は何に使えますか?
- コルーチンを使った、高並行なCまたはC++バックエンドサービスの構築 モバイルや組み込み環境向けのRedis、MQTT、HTTPクロスプラットフォームクライアントの開発 プロセス、スレッド、AIOの各サービスモデルを使ったネットワークサーバーの作成 MySQL、PostgreSQL、SQLiteで共通のAPIを必要とするデータベースアプリケーションの開発
- acl のインストール方法は?
- READMEのセクション3.1にあるコンパイルガイドに従って、お使いのプラットフォーム向けにAclをコンパイルします
- acl はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/acl-dev/acl
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
HTTP、ネットワーク、データベース、XML/JSON、ログ機能を備えた、ネットワーク中心のアプリケーション構築向けクロスプラットフォームC++クラスライブラリ。
ウィンドウ管理、2Dグラフィックス、オーディオ、ネットワーク機能を備えた、シンプルで高速なクロスプラットフォーム対応C++マルチメディアライブラリ。
fasthttpエンジンを基盤とした、REST APIやWebサーバーの構築に使えるExpress.jsに着想を得たGo向けWebフレームワーク。
goroutine風コルーチン、ネットワーク、ロギング、フラグ解析、JSON、ユニットテスト、ベンチマークをまとめた軽量C++基盤ライブラリ。
長時間稼働するTCP、UDP、HTTP、WebSocketサービスの構築に使える、イベント駆動型ネットワークエンジンとコルーチンランタイムを提供するPHP拡張です。