Sane C++ Libraries es un conjunto de bibliotecas abstractas de plataforma C++ para macOS, Windows y Linux.
Principios:
✅ Tiempos de compilación rápidos
✅ Sin hinchazón
✅ Código legible simple
✅ Fácil de integrar
⛔️ Sin biblioteca estándar de C++/Excepciones/RTTI
⛔️ Sin dependencias de terceros (preferiblemente OS API)
Visite el sitio web de documentación para obtener más información.
Biblioteca | Descripción |
---|---|
Algoritmos | ? Biblioteca de marcadores de posición donde se colocarán los algoritmos con plantilla |
asíncrono | ? E/S asíncrona (archivos, sockets, temporizadores, procesos, eventos fs, activación de subprocesos) |
Flujos asíncronos | ? Lea, transforme y escriba datos simultáneamente desde fuentes asíncronas a destinos. |
Construir | ? Sistema de compilación mínimo donde las compilaciones se describen en C++ |
Contenedores | ? Contenedores genéricos (SC::Vector, SC::SmallVector, SC::Array, etc.) |
Archivo | ? E/S de archivos de disco síncronos |
Sistema de archivos | ? Operaciones del sistema de archivos {existe, copiar, eliminar} para {archivos y directorios} |
Iterador del sistema de archivos | ? Enumera archivos y directorios dentro de una ruta determinada |
Vigilante del sistema de archivos | ? Notificaciones {agregar, eliminar, cambiar nombre, modificar} para archivos y directorios |
Base | ? Tipos primitivos, afirmaciones, límites, función, intervalo, resultado, unión etiquetada |
hash | ? Calcular hashes MD5 , SHA1 o SHA256 para un flujo de bytes |
http | ? Analizador HTTP, cliente y servidor |
Complemento | ? Sistema de complementos basado en dependencia mínima con recarga en caliente |
Proceso | ? Cree procesos secundarios y encadenelos (también se puede utilizar con la biblioteca Async) |
Reflexión | ? Describir los tipos de C++ en tiempo de compilación para la serialización. |
Serialización binaria | ? Serializar hacia y desde un formato binario usando Reflection |
Texto de serialización | ? Serializar hacia/desde formatos de texto (JSON) usando Reflection |
Enchufe | ? Redes de sockets síncronos y búsqueda de DNS |
Instrumentos de cuerda | ? Formato/conversión/manipulación de cadenas (ASCII/UTF8/UTF16) |
Pruebas | ? Marco de prueba simple utilizado por todas las demás bibliotecas. |
Enhebrado | ? Atómico, subproceso, grupo de subprocesos, mutex, variable de condición |
Tiempo | ? Manejo del tiempo (relativo, absoluto, alta resolución) |
Cada biblioteca está codificada por colores para indicar su estado:
Algunas bibliotecas tienen enlaces C
Vinculante | Descripción |
---|---|
sc_hashing | Enlaces para la biblioteca Hashing |
Las bibliotecas se pueden usar tal cual, agregando un solo archivo a su proyecto y sin necesidad de ningún sistema de compilación.
Ver Construir (usuario) para usar solo la biblioteca.
Dentro de poco:
SC_COMPILER_ENABLE_STD_CPP=1
si planea utilizar la biblioteca estándar de C++Libraries/[Library]/*.h
) CoreFoundation.framework
CoreServices.framework
libdl
( -ldl
)libpthread
( -lpthread
)SCExample muestra la integración de las bibliotecas Sane C++ junto con las bibliotecas Dear ImGui y sokol (consulte la página de ejemplos).
Las pruebas se crean con el generador de proyectos SC::Build autohospedado, que describe las compilaciones en C++.
Marque Edificio (colaborador) para ejecutar las pruebas.
@pagghiu.bsky.social
@pagghiu_
@pagghiu
Alternativamente, también estoy leyendo las siguientes discordias:
@Pagghiu
de cualquier canal apropiado o simplemente un DM, tanto el inglés como el italiano están bien)@Pagghiu
desde cualquier canal apropiado o simplemente un DM)Tómese un tiempo para leer los principios y el estilo de codificación.
Después de eso puedes leer la guía CONTRIBUTING.md.
Las bibliotecas Sane C++ tienen la licencia MIT; consulte LICENSE.txt para obtener más información.
En este canal de YouTube hay algunos videos que muestran partes del proceso de desarrollo.
En Sane Coding Blog hay una serie de publicaciones de blog sobre este proyecto.