Facil.io는 웹 애플리케이션을위한 C 마이크로 프레임 워크입니다. facil.io는 다음을 포함합니다.
Facil.io는 이벤트 디자인 (스레드 풀 및 포킹 지원)을 사용하여 Linux / BSD (및 MACOS)에 고성능 TCP / IP 네트워크 서비스를 제공하며 C10K 문제에 대한 쉬운 솔루션을 제공합니다.
FACIL.IO에 대한 자세한 내용은 FACIL.IO 웹 사이트에서 읽을 수 있습니다.
git Repo의 마스터 브랜치는 개발 지점이며 주어진 시간에 깨질 수 있습니다 (특히 현재로서는 주요 개정을 수행 할 때).
생산 요구에 대한 릴리스 버전을 선택하십시오.
facil.io 에서 달리고 있습니다 Ruby HTTP/WebSockets Ruby Application Server 인 facil.io , ioodine 서버를 사용하는 모든 사람은 Facil.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
여기에서 스크립트를 검토 할 수 있습니다. 요컨대, 새 폴더를 생성하고 안정적인 분기의 사본을 다운로드하고 데모 보일러 플레이트 코드를 추가하고 make clean ( tmp 폴더 구조를 구축하는 데 필요한 Make Clean).
다음으로 makefile 편집하여 DUMP_LIB 기능, DEBUG 플래그 또는 DISAMS Disassember 및 Start Development와 같이 필요없는 일반적인 기능을 제거하십시오.
스크립트를 제안한 @Benjcal에 대한 크레딧.
주목 : 마스터 브랜치는 개발 지점입니다. 최신 안정 릴리스 버전의 최신 릴리스 태그를 선택하십시오.
Facil.io는 소스 코드 라이브러리이므로 소스 코드를 기존 프로젝트에 쉽게 복사하고 라이브러리를 즉시 사용하기 쉽습니다.
make libdump 명령은 모든 관련 파일을 libdump 라는 단일 폴더에 버리고 모두 복사하거나 헤더 및 소스 파일로 나눌 수 있습니다.
make lib 명령을 사용하여 FACIL.IO 라이브러리를 별도로 컴파일 할 수도 있습니다.
facil.io 사용합니다 Facil.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 사용Facil.io는 Meson Wrap DB에서 구입할 수 있습니다.
먼저 랩 파일을 설치하십시오.
meson wrap install facil
그런 다음 프로젝트의 meson.build 에 다음 줄을 추가하십시오.
facil_dep = subproject('facil').get_variable('facil_dep')
예제 폴더에는 Telnet Echo 프로토콜의 코드 예제, 간단한 Hello World Server, Websocket Pub/Sub의 예제 (선택 사항) Redis 등이 포함되어 있습니다.
FACIL.IO 웹 사이트에서 자세한 정보를 찾을 수 있습니다
기여 가이드는 여기에서 찾을 수 있습니다.
물론, 왜 안됩니다. evio 및 sock 에 Solaris 또는 Windows 지원을 추가 할 수 있다면 이러한 플랫폼에서도 facil 사용할 수 있습니다.
문제가 발생하면 문제를 여는 경우 (또는 더 나은 수정 요청이 더 나은 요청) - 이것은 좋을 것입니다 :-)
당신이 원한다면 나를 때리십시오 :
테스트 작성 ... 항상 더 많은 테스트가 필요합니다 ...
HPACK / HTTP2 프로토콜 지원을 작성하도록 도와주세요.
http_s 구조물을위한 일반적인 HTTP 라우팅 헬퍼 라이브러리를 설계 / 작성하도록 도와주세요.
새 SSL/TLS 라이브러리를 작성하거나 SSL/TLS 솔루션을 사용하는 데 도움이 되려면 소스 코드로 facil 에 적합 할 수 있습니다. 참고 : SSL/TLS 솔루션은 클라이언트 및 서버 모드 모두에 적합해야합니다.
도서관 홍보를 돕고 싶다면 그다지 좋을 것입니다. 벤치 마크를 게시하거나 이야기를 공유 할 수 있습니다.
facil.io 웹 사이트에 문서를 작성하는 것이 좋을 것입니다. 소스 코드 문서를 공정하게 업데이트했지만 문서화 웹 사이트를 업데이트하고 실행하려면 문서를 docs 폴더에 복사해야합니다.