Sane C++ Libraries é um conjunto de bibliotecas de abstração da plataforma C++ para macOS, Windows e Linux.
Princípios:
✅ Tempos de compilação rápidos
✅ Livre de inchaço
✅ Código legível simples
✅ Fácil de integrar
⛔️ Sem biblioteca padrão C++/Exceções/RTTI
⛔️ Sem dependências de terceiros (prefira API do SO)
Visite o site de documentação para obter mais informações.
Biblioteca | Descrição |
---|---|
Algoritmos | ? Biblioteca de espaço reservado onde os algoritmos de modelo serão colocados |
Assíncrono | ? E/S assíncrona (arquivos, soquetes, temporizadores, processos, eventos fs, ativação de threads) |
Fluxos assíncronos | ? Leia, transforme e grave dados simultaneamente de fontes assíncronas para destinos. |
Construir | ? Sistema de compilação mínimo onde as compilações são descritas em C++ |
Recipientes | ? Contêineres genéricos (SC::Vector, SC::SmallVector, SC::Array etc.) |
Arquivo | ? E/S de arquivo de disco síncrono |
Sistema de arquivos | ? Operações do sistema de arquivos {existe, copia, exclui} para {arquivos e diretórios} |
Iterador do sistema de arquivos | ? Enumera arquivos e diretórios dentro de um determinado caminho |
Observador do sistema de arquivos | ? Notificações {adicionar, remover, renomear, modificar} para arquivos e diretórios |
Fundação | ? Tipos primitivos, afirmações, limites, Função, Span, Resultado, União Tagged |
Hashing | ? Calcular hashes MD5 , SHA1 ou SHA256 para um fluxo de bytes |
HTTP | ? Analisador HTTP, cliente e servidor |
Plug-in | ? Sistema de plugin baseado em dependência mínima com hot-reload |
Processo | ? Crie processos filhos e encadeie-os (também utilizável com a biblioteca Async) |
Reflexão | ? Descrever os tipos C++ em tempo de compilação para serialização |
Binário de serialização | ? Serialize de e para um formato binário usando Reflection |
Texto de serialização | ? Serializar de/para formatos de texto (JSON) usando Reflection |
Soquete | ? Rede de soquete síncrona e pesquisa de DNS |
Cordas | ? Formatação/conversão/manipulação de strings (ASCII/UTF8/UTF16) |
Teste | ? Estrutura de teste simples usada por todas as outras bibliotecas |
Rosqueamento | ? Atômico, thread, pool de threads, mutex, variável de condição |
Tempo | ? Tratamento de tempo (relativo, absoluto, alta resolução) |
Cada biblioteca é codificada por cores para sinalizar seu status:
Algumas bibliotecas possuem ligações C
Vinculativo | Descrição |
---|---|
sc_hashing | Vinculações para a biblioteca de hash |
As bibliotecas podem ser usadas como estão, adicionando um único arquivo ao seu projeto e sem a necessidade de nenhum sistema de compilação.
Consulte Construindo (usuário) para usar apenas a biblioteca
Em breve:
SC_COMPILER_ENABLE_STD_CPP=1
se você planeja usar a biblioteca C++ padrãoLibraries/[Library]/*.h
) CoreFoundation.framework
CoreServices.framework
libdl
( -ldl
)libpthread
( -lpthread
)SCExample mostra a integração das bibliotecas Sane C++ junto com as bibliotecas Dear ImGui e sokol (consulte a página de exemplos).
Os testes são construídos com o gerador de projeto SC::Build auto-hospedado, descrevendo os builds em C++.
Marque Building (contribuidor) para executar os testes.
@pagghiu.bsky.social
@pagghiu_
@pagghiu
Alternativamente, também estou lendo as seguintes discórdias:
@Pagghiu
de qualquer canal apropriado ou apenas um DM, inglês e italiano estão bem)@Pagghiu
de qualquer canal apropriado ou apenas um DM)Reserve algum tempo para ler os Princípios e Estilo de Codificação.
Depois disso, você pode ler o guia CONTRIBUTING.md.
As bibliotecas Sane C++ são licenciadas sob a licença MIT, consulte LICENSE.txt para obter mais informações.
Neste canal do YouTube existem alguns vídeos mostrando trechos do processo de desenvolvimento.
No Sane Coding Blog há uma série de postagens sobre este projeto.