Fifil.ioは、Webアプリケーション用のCマイクロフレームワークです。 fifil.ioが含まれます:
Fifil.ioは、イベントされたデザイン(およびスレッドプールとフォーキングサポート)を使用して、Linux / BSD(およびMacOS)に高性能TCP / IPネットワークサービスを提供し、C10K問題の簡単なソリューションを提供します。
Fifil.ioのWebサイトでFALIL.IOの詳細を読むことができます。
git Repoのマスターブランチは開発ブランチであり、いつでも壊れる可能性があります(特に、私が現時点であるように、主要な改訂に取り組んでいる場合)。
生産ニーズのリリースバージョンを選択してください。
facil.ioで走っている人ヨウ素、Ruby HTTP/WebSockets Ruby Application Serverはfacil.ioによって駆動されます。そのため、ヨウ素サーバーを使用しているすべての人がfifil.ioで実行されています。
facil.ioを使用していますか?お知らせ下さい!
#include "http.h" /* the HTTP facil.io extension */
// We'll use this callback in `http_listen`, to handles HTTP requests
void on_request ( http_s * request );
// These will contain pre-allocated values that we will use often
FIOBJ HTTP_X_DATA ;
// Listen to HTTP requests and start facil.io
int main ( int argc , char const * * argv ) {
// allocating values we use often
HTTP_X_DATA = fiobj_str_new ( "X-Data" , 6 );
// listen on port 3000 and any available network binding (NULL == 0.0.0.0)
http_listen ( "3000" , NULL , . on_request = on_request , . log = 1 );
// start the server
facil_start (. threads = 1 );
// deallocating the common values
fiobj_free ( HTTP_X_DATA );
}
// Easy HTTP handling
void on_request ( http_s * request ) {
http_set_cookie ( request , . name = "my_cookie" , . name_len = 9 , . value = "data" ,
. value_len = 4 );
http_set_header ( request , HTTP_HEADER_CONTENT_TYPE ,
http_mimetype_find ( "txt" , 3 ));
http_set_header ( request , HTTP_X_DATA , fiobj_str_new ( "my data" , 7 ));
http_send_body ( request , "Hello World!rn" , 14 );
}facil.ioを使用しますfacil.ioで新しいプロジェクトを開始するか、既存のプロジェクトに追加することができます。 GNU makeデフォルトのビルドシステムであり、Cmakeもサポートされています。
facil.io C99互換である必要があります。
facil.ioで新しいプロジェクトを開始しますfacil.ioフレームワークを使用して新しいプロジェクトを開始するには、端末で次のコマンドを実行します(希望するものにappname変更):
$ bash <(curl -s https://raw.githubusercontent.com/boazsegev/facil.io/master/scripts/new/app) appname
ここでスクリプトを確認できます。要するに、新しいフォルダーを作成し、Stable Branchのコピーをダウンロードし、デモボイラープレートコードを追加して実行し、 make clean ( tmpフォルダー構造を構築するために必要です)を実行します。
次に、 makefileを編集して、 DUMP_LIB機能、 DEBUGフラグ、 DISAMS Resassembler、および開発を開始するなど、必要のない一般的な機能を削除します。
スクリプトを提案した@benjcalのクレジット。
通知:マスターブランチは開発ブランチです。最新の安定リリースバージョンの最新リリースタグを選択してください。
fifil.ioはソースコードライブラリであるため、ソースコードを既存のプロジェクトにコピーして、すぐにライブラリを使用し始めるのは簡単です。
make libdumpコマンドは、すべての関連ファイルをlibdumpという単一のフォルダーにダンプし、それらをすべてコピーするか、ヘッダーとソースファイルに分割することができます。
make libコマンドを使用して、ficil.ioライブラリを個別にコンパイルすることもできます。
facil.io cmakeサブモジュールとして使用しますFALIL.IOは、 gitとCmakeサブモジュールの両方をサポートしています。 @owendelahoy(PR#8)のクレジット。
まず、 gitを使用してサブモジュールとしてリポジトリを追加します。
git submodule add https://github.com/boazsegev/facil.io.git
次に、プロジェクトのCMakeLists.txtに次の行を追加します
add_subdirectory(facil.io)
facil.ioを使用しますFALIL.IOはMeson Lap DBで入手できます。
まず、ラップファイルをインストールします。
meson wrap install facil
次に、プロジェクトのmeson.buildに次の行を追加します。
facil_dep = subproject('facil').get_variable('facil_dep')
例フォルダーには、Telnetエコープロトコルのコード例、単純なHello World Server、(オプションの)RedisなどのWebsocket Pub/Subの例が含まれています。
Fifil.ioのWebサイトで詳細を確認できます
貢献ガイドはここにあります。
確かに、なぜそうではありません。 evioとsockにSolarisまたはWindowsサポートを追加できる場合、これfacilこれらのプラットフォームでも使用できるようになることを意味します。
問題が発生した場合は、問題を開きます(またはさらに良い、修正を伴うプルリクエスト) - それは素晴らしいことです:-)
あなたがしたいなら私を殴ってください:
テストを書く...私は常にもっともっとテストが必要です...
HPACK / HTTP2プロトコルのサポートを書くのを手伝ってください。
http_s struct用の一般的なHTTPルーティングヘルパーライブラリを設計 /作成するのを手伝ってください。
新しいSSL/TLSライブラリの作成を手伝いたい場合、またはSSL/TLSソリューションを持っている場合(ソースコードとして) facilに適合できます...注:SSL/TLSソリューションは、クライアントモードとサーバーモードの両方に適合する必要があります。
あなたが図書館の宣伝を手伝いたいなら、それも素晴らしいことです。おそらくベンチマークを公開するか、ストーリーを共有してください。
facil.ioウェブサイトにドキュメントを書くのは素晴らしいことです。ソースコードのドキュメントを公正に更新しますが、ドキュメントWebサイトをアップして実行するには、ドキュメントをdocsフォルダーにコピーする必要があります。