Sobre o projeto

Kore é uma plataforma de aplicação web para escrever processos web escaláveis e concorrentes em C ou Python. Foi projetada com uma abordagem "segura por padrão" e usa separação total de privilégios juntamente com recursos de segurança do sistema operacional, como seccomp, pledge e unveil. O projeto relata uso em áreas como dispositivos criptográficos de alta garantia, pilhas de aprendizado de máquina e aeroespacial, e posiciona-se como adequado desde plataformas embarcadas até servidores de alto desempenho. As principais capacidades listadas pelo projeto incluem SNI, suporte a HTTP/1.1 e WebSocket, separação de privilégios por padrão, TLS habilitado por padrão, tarefas em segundo plano opcionais, validação de parâmetros integrada, suporte assíncrono opcional a PostgreSQL, manipuladores de páginas Python opcionais, recarregamento em tempo real de chaves privadas e certificados, certificados X509 automáticos via ACME com separação de privilégios, chaves privadas isoladas em um processo separado para RSA e ECDSA, conjuntos de cifras TLS padrão com sigilo direto, recarregamento de módulos em tempo real mesmo enquanto serve conteúdo, processos de trabalho em sandbox no OpenBSD via pledge e no Linux via seccomp, uma arquitetura orientada a eventos epoll/kqueue com processos de trabalho por CPU, e a capacidade de compilar uma aplicação como uma biblioteca dinâmica pré-compilada ou um único binário. Kore é licenciado sob a licença ISC. A documentação está disponível em docs.kore.io. As plataformas suportadas são Linux, OpenBSD, FreeBSD e macOS, apenas com arquiteturas x64, arm e aarch64. A compilação requer OpenSSL 1.1.1, LibreSSL 3.x ou OpenSSL 3. Recursos opcionais têm seus próprios requisitos: libcurl 7.64.0 ou superior para curl assíncrono, pthreads para tarefas em segundo plano, libpq para PostgreSQL, Python 3.6+ para suporte a Python, e Lua 5.4+ para suporte a Lua. Uma compilação normal é feita com make e make install. Variantes opcionais de compilação são habilitadas por meio de variáveis de ambiente antes de executar make: LUA=1, ACME=1, CURL=1, TASKS=1, PGSQL=1, DEBUG=1, NOHTTP=1, NOOPT=1, JSONRPC=1, PYTHON=1 e TLS_BACKEND=none. O README observa que algumas variantes não podem ser combinadas e produzirão erros de compilação. Aplicações de exemplo são fornecidas em examples/, cada uma com um README descrevendo como compilá-la ou usá-la. O repositório é descrito como um espelho somente leitura; as informações de contribuição apontam para as listas de discussão kore.io, com patches@kore.io para patches e users@kore.io para perguntas, além de security@kore.io para relatórios de segurança e sponsor@kore.io para patrocínio.