Sane C++ Libraries est un ensemble de bibliothèques d'abstraction de plateforme C++ pour macOS, Windows et Linux.
Principes :
✅ Temps de compilation rapides
✅ Sans ballonnements
✅ Code simple et lisible
✅ Facile à intégrer
⛔️ Pas de bibliothèque standard C++ / Exceptions / RTTI
⛔️ Aucune dépendance tierce (préférer l'API du système d'exploitation)
Visitez le site Web de documentation pour plus d’informations.
Bibliothèque | Description |
---|---|
Algorithmes | ? Bibliothèque d'espaces réservés où les algorithmes modélisés seront placés |
Asynchrone | ? E/S asynchrones (fichiers, sockets, minuteries, processus, événements fs, réveil des threads) |
Flux asynchrones | ? Lisez, transformez et écrivez simultanément des données depuis des sources asynchrones vers des destinations. |
Construire | ? Système de build minimal où les builds sont décrits en C++ |
Conteneurs | ? Conteneurs génériques (SC::Vector, SC::SmallVector, SC::Array etc.) |
Déposer | ? E/S de fichier de disque synchrone |
Système de fichiers | ? Opérations sur le système de fichiers { existe, copier, supprimer } pour { fichiers et répertoires } |
Itérateur du système de fichiers | ? Énumère les fichiers et les répertoires dans un chemin donné |
Observateur du système de fichiers | ? Notifications {ajouter, supprimer, renommer, modifier} pour les fichiers et répertoires |
Fondation | ? Types primitifs, assertions, limites, fonction, étendue, résultat, union taguée |
Hachage | ? Calculer les hachages MD5 , SHA1 ou SHA256 pour un flux d'octets |
Http | ? Analyseur HTTP, client et serveur |
Plugin | ? Système de plugin basé sur une dépendance minimale avec rechargement à chaud |
Processus | ? Créer des processus enfants et les chaîner (également utilisable avec la bibliothèque Async) |
Réflexion | ? Décrire les types C++ au moment de la compilation pour la sérialisation |
Binaire de sérialisation | ? Sérialiser vers et depuis un format binaire à l'aide de Reflection |
Texte de sérialisation | ? Sérialiser vers/depuis les formats de texte (JSON) à l'aide de Reflection |
Douille | ? Mise en réseau de sockets synchrones et recherche DNS |
Cordes | ? Formatage / conversion / manipulation de chaînes (ASCII / UTF8 / UTF16) |
Essai | ? Cadre de test simple utilisé par toutes les autres bibliothèques |
Enfilage | ? Atomique, thread, pool de threads, mutex, variable de condition |
Temps | ? Gestion du temps (relatif, absolu, haute résolution) |
Chaque bibliothèque est codée par couleur pour signaler son statut :
Certaines bibliothèques ont des liaisons C
Obligatoire | Description |
---|---|
sc_hashing | Liaisons pour la bibliothèque de hachage |
Les bibliothèques peuvent être utilisées telles quelles, en ajoutant un seul fichier à votre projet et sans avoir besoin d'un système de construction.
Voir Building (user) pour utiliser uniquement la bibliothèque
Prochainement:
SC_COMPILER_ENABLE_STD_CPP=1
si vous prévoyez d'utiliser la bibliothèque Standard C++Libraries/[Library]/*.h
) CoreFoundation.framework
CoreServices.framework
libdl
( -ldl
)libpthread
( -lpthread
)SCExample présente l'intégration des bibliothèques Sane C++ avec les bibliothèques Dear ImGui et sokol (voir la page Exemples).
Les tests sont construits avec le générateur de projet auto-hébergé SC::Build, décrivant les builds en C++.
Cochez Building (contributeur) pour exécuter les tests.
@pagghiu.bsky.social
@pagghiu_
@pagghiu
Alternativement, je lis également les discordes suivantes :
@Pagghiu
depuis n'importe quel canal approprié ou juste un DM, l'anglais et l'italien conviennent tous les deux)@Pagghiu
depuis n'importe quel canal approprié ou simplement un DM)Veuillez prendre le temps de lire les principes et le style de codage.
Après cela, vous pouvez lire le guide CONTRIBUTING.md.
Les bibliothèques Sane C++ sont sous licence MIT, voir LICENSE.txt pour plus d'informations.
Sur cette chaîne YouTube, vous trouverez des vidéos montrant des éléments du processus de développement.
Sur Sane Coding Blog, il existe une série d'articles de blog sur ce projet.