1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mll-facil.io

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

GitHub Статус сборки Codacy Badge codecov

facil.io — это микроплатформа на языке C для веб-приложений. В состав facil.io входят:

  • Быстрый сервер статических файлов и приложений с поддержкой протокола HTTP/1.1 и WebSocket.
  • Поддержка пользовательских сетевых протоколов как для серверных, так и для клиентских соединений.
  • Динамические типы данных, спроектированные с учетом потребностей веб-приложений (строки, хэши, массивы и т.д.).
  • Высокоэффективное парсинг и форматирование JSON для удобной сети-коммуникации.
  • Публикация и подписка процессного кластера для локальной и WebSocket публикации/подписки.
  • Опциональная связь с Redis.

facil.io предоставляет высокопроизводительные TCP/IP сетевые службы для операционных систем Linux/BSD (и macOS) путём использования событийого дизайна (а также пула потоков и форка) и обеспечивает простое решение проблемы C10K.

Дополнительная информация о facil.io доступна на сайте facil.io.### Важно знать

Основная ветка (master) в репозитории Git является разработочной веткой и может быть неработоспособной в любой момент времени (особенно во время работы над крупными изменениями, как это происходит сейчас).

Для производственных нужд выберите выпускную версию.

Кто использует facil.io

Пример HTTP запроса

#include "http.h" /* расширение HTTP для facil.io */

// Мы будем использовать этот обратный вызов в `http_listen`, чтобы обрабатывать HTTP запросы
void on_request(http_s *request);

Использование 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Вы можете [просмотреть этот скрипт здесь](scripts/new/app). Кратко, он создаст новую папку, скачает копию стабильной ветки, добавит демонстрационный шаблон кода и запустит `make clean` (что необходимо для создания структуры папок `tmp`).Затем отредактируйте `makefile`, чтобы удалить любые общие возможности, которые вам не нужны, такие как возможность `DUMP_LIB`, флаг `DEBUG` или дисассемблер `DISASM`, и приступайте к разработке.

Благодарность @benjcal за предложение этого скрипта.

Примечание: Ветка master является разработочной веткой. Пожалуйста, выберите последний тэг выпуска для получения самой последней стабильной версии.

Добавление facil.io в существующий проект

facil.io представляет собой библиотеку исходного кода, поэтому легко скопировать исходный код в существующий проект и сразу же использовать эту библиотеку.

Команда make libdump выгрузит все необходимые файлы в одну папку под названием libdump, которую можно скопировать целиком или разделить на заголовочные и исходные файлы. Также возможно отдельное компилирование библиотеки facil.io с помощью команды make lib.

Использование facil.io как подмодуля CMake

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 с Meson

facil.io доступен в Meson Wrap DB.Сначала установите файл wrap:

meson wrap install facil

Затем добавьте следующую строку в ваш проектный файл meson.build:

facil_dep = subproject('facil').get_variable('facil_dep')

Дополнительные примеры

Папка examples включает в себя кодовые примеры для протокола эхо telnet (raw-echo.c), простого сервера "Hello World" (raw-http.c), примера для работы с Websocket pub/sub с (необязательной) Redis (http-chat.c) и т.д.

Вы можете найти больше информации на сайте facil.io


Создание форков, вклад в проект и всё такое

Руководство по вкладу можно найти здесь.

Конечно, почему бы и нет. Если вы сможете добавить поддержку Solaris или Windows для evio и sock, это может сделать facil доступным для использования на этих платформах.

Если вы столкнулись с проблемами, откройте задачу (или даже лучше, запрос на слияние с исправлением) — это было бы замечательно :-)

Обращайтесь ко мне, если вам нужно:

  • Написать тесты... Мне всегда нужны больше тестов...

  • Помочь мне реализовать поддержку HPACK / HTTP2 протокола.

  • Помочь мне спроектировать / написать универсальную библиотеку помощника для маршрутизации HTTP для структуры http_s.

  • Если вы хотите помочь мне написать новую библиотеку SSL/TLS или иметь решение SSL/TLS, которое мы можем внедрить в facil (в виде исходного кода)... Обратите внимание: решения SSL/TLS должны подходить как для режима клиента, так и для режима сервера.* Если вы хотите помочь продвижению библиотеки, это будет здорово. Возможно, опубликуйте benchmarks или поделитесь своей историей.

  • Написание документации для сайта facil.io было бы замечательно. Я стараюсь поддерживать документацию исходного кода актуальной, но документация должна быть скопирована в папку docs, чтобы запустить сайт документации.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Facil.io — это микрофреймворк на языке C для веб-приложений. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mll-facil.io.git
git@api.gitlife.ru:oschina-mirror/mll-facil.io.git
oschina-mirror
mll-facil.io
mll-facil.io
master