Библиотеки Sane C++ — это набор библиотек абстракции платформы C++ для macOS, Windows и Linux.
Принципы:
✅ Быстрое время компиляции
✅ Без вздутия живота
✅ Простой читаемый код
✅ Легко интегрироваться
⛔️ Нет стандартной библиотеки C++/исключений/RTTI
⛔️ Никаких сторонних зависимостей (предпочитайте API ОС)
Посетите веб-сайт документации для получения дополнительной информации.
Библиотека | Описание |
---|---|
Алгоритмы | ? Библиотека заполнителей, в которой будут размещены шаблонные алгоритмы. |
Асинхронный | ? Асинхронный ввод-вывод (файлы, сокеты, таймеры, процессы, события файловой системы, пробуждение потоков) |
Асинхронные потоки | ? Чтение, преобразование и запись данных одновременно из асинхронных источников в места назначения. |
Строить | ? Минимальная система сборки, в которой сборки описаны на C++. |
Контейнеры | ? Общие контейнеры (SC::Vector, SC::SmallVector, SC::Array и т. д.) |
Файл | ? Синхронный дисковый файловый ввод-вывод |
Файловая система | ? Операции с файловой системой {существует, копировать, удалить} для {файлов и каталогов} |
Итератор файловой системы | ? Перечисляет файлы и каталоги внутри заданного пути |
Наблюдатель за файловой системой | ? Уведомления {добавление, удаление, переименование, изменение} для файлов и каталогов. |
Фундамент | ? Примитивные типы, утверждения, ограничения, функция, диапазон, результат, объединение тегов |
Хеширование | ? Вычисление хешей MD5 , SHA1 или SHA256 для потока байтов. |
HTTP | ? HTTP-парсер, клиент и сервер |
Плагин | ? Система плагинов на основе минимальных зависимостей с горячей перезагрузкой |
Процесс | ? Создайте дочерние процессы и свяжите их (также можно использовать с библиотекой Async) |
Отражение | ? Описывать типы C++ во время компиляции для сериализации. |
Двоичный файл сериализации | ? Сериализация в двоичный формат и обратно с использованием Reflection |
Текст сериализации | ? Сериализация в/из текстовых форматов (JSON) с использованием Reflection |
Розетка | ? Синхронная сеть сокетов и поиск DNS |
Струны | ? Форматирование/преобразование/манипулирование строками (ASCII/UTF8/UTF16) |
Тестирование | ? Простая среда тестирования, используемая всеми другими библиотеками. |
Резьба | ? Атомарный, поток, пул потоков, мьютекс, условная переменная |
Время | ? Управление временем (относительное, абсолютное, высокое разрешение) |
Каждая библиотека имеет цветовую маркировку, обозначающую ее статус:
Некоторые библиотеки имеют привязки C.
Связывание | Описание |
---|---|
sc_hashing | Привязки для библиотеки хеширования |
Библиотеки можно использовать как есть, добавляя в проект один файл и не нуждаясь в какой-либо системе сборки.
См. Сборка (пользователя), чтобы просто использовать библиотеку.
Вкратце:
SC_COMPILER_ENABLE_STD_CPP=1
, если вы планируете использовать стандартную библиотеку C++.Libraries/[Library]/*.h
). CoreFoundation.framework
CoreServices.framework
libdl
( -ldl
)libpthread
( -lpthread
)SCExample демонстрирует интеграцию библиотек Sane C++ с библиотеками Dear ImGui и sokol (см. страницу «Примеры»).
Тесты создаются с помощью автономного генератора проектов SC::Build, описывающего сборки на C++.
Установите флажок Building (участник), чтобы запустить тесты.
@pagghiu.bsky.social
@pagghiu_
@pagghiu
В качестве альтернативы я также читаю следующие разногласия:
@Pagghiu
с любого подходящего канала или просто в DM, английский и итальянский подходят)@Pagghiu
с любого подходящего канала или просто в Директ)Пожалуйста, уделите некоторое время прочтению Принципов и стиля кодирования.
После этого вы можете прочитать руководство CONTRIBUTING.md.
Библиотеки Sane C++ лицензируются по лицензии MIT, дополнительную информацию см. в файле LICENSE.txt.
На этом канале YouTube есть несколько видеороликов, демонстрирующих некоторые моменты процесса разработки.
В блоге Sane Coding есть серия статей об этом проекте.