Об этом проекте
Kore — это платформа для веб-приложений, предназначенная для написания масштабируемых, конкурентных веб-процессов на C или Python. Она разработана с подходом «безопасность по умолчанию» и использует полное разделение привилегий вместе с функциями безопасности операционной системы, такими как seccomp, pledge и unveil. Проект сообщает об использовании в таких областях, как высоконадежные криптографические устройства, стеки машинного обучения и аэрокосмическая отрасль, и позиционирует себя как подходящий от встраиваемых платформ до высокопроизводительных серверов.
Ключевые возможности, перечисленные проектом, включают поддержку SNI, HTTP/1.1 и WebSocket, разделение привилегий по умолчанию, TLS, включенный по умолчанию, опциональные фоновые задачи, встроенную проверку параметров, опциональную асинхронную поддержку PostgreSQL, опциональные обработчики страниц на Python, перезагрузку закрытых ключей и сертификатов на лету, автоматические сертификаты X509 через ACME с разделением привилегий, закрытые ключи, изолированные в отдельном процессе для RSA и ECDSA, наборы шифров TLS по умолчанию с прямой секретностью, перезагрузку модулей на лету даже во время обслуживания контента, рабочие процессы, изолированные в песочнице на OpenBSD через pledge и на Linux через seccomp, событийную архитектуру epoll/kqueue с рабочими процессами на каждый ЦП, а также возможность сборки приложения как предварительно скомпилированной динамической библиотеки или единого бинарного файла.
Kore распространяется под лицензией ISC. Документация доступна на docs.kore.io. Поддерживаемые платформы: Linux, OpenBSD, FreeBSD и macOS, только с архитектурами x64, arm и aarch64.
Для сборки требуются OpenSSL 1.1.1, LibreSSL 3.x или OpenSSL 3. Опциональные функции имеют свои требования: libcurl 7.64.0 или выше для асинхронного curl, pthreads для фоновых задач, libpq для PostgreSQL, Python 3.6+ для поддержки Python и Lua 5.4+ для поддержки Lua. Обычная сборка выполняется с помощью make и make install. Опциональные варианты сборки включаются через переменные окружения перед запуском make: LUA=1, ACME=1, CURL=1, TASKS=1, PGSQL=1, DEBUG=1, NOHTTP=1, NOOPT=1, JSONRPC=1, PYTHON=1 и TLS_BACKEND=none. В README отмечается, что некоторые варианты нельзя комбинировать, и это приведет к ошибкам компиляции.
Примеры приложений предоставлены в каталоге examples/, каждый с README, описывающим, как его собрать или использовать. Репозиторий описан как зеркало только для чтения; информация о вкладе указывает на списки рассылки kore.io, с patches@kore.io для патчей и users@kore.io для вопросов, а также security@kore.io для отчетов о безопасности и sponsor@kore.io для спонсорства.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.