SaneCppLibraries
2024-11
Sane C++ Libraries是一组适用于 macOS、Windows 和 Linux 的 C++ 平台抽象库。
原则:
✅ 快速编译时间
✅ 无浮肿
✅ 简单易读的代码
✅ 易于集成
⛔️ 无 C++ 标准库/异常/RTTI
⛔️ 无第三方依赖(首选操作系统 API)
请访问文档网站以获取更多信息。
图书馆 | 描述 |
---|---|
算法 | ?将放置模板算法的占位符库 |
异步 | ?异步 I/O(文件、套接字、计时器、进程、fs 事件、线程唤醒) |
异步流 | ?从异步源到目标同时读取、转换和写入数据。 |
建造 | ?最小构建系统,其中构建以 C++ 描述 |
集装箱 | ?通用容器(SC::Vector、SC::SmallVector、SC::Array 等) |
文件 | ?同步磁盘文件 I/O |
文件系统 | ?针对 { 文件和目录 } 的文件系统操作 { 存在、复制、删除 } |
文件系统迭代器 | ?枚举给定路径内的文件和目录 |
文件系统观察者 | ?文件和目录的通知{添加、删除、重命名、修改} |
基础 | ?基本类型、断言、限制、函数、跨度、结果、标记联合 |
散列 | ?计算字节流的MD5 、 SHA1 或SHA256 哈希值 |
HTTP | ? HTTP 解析器、客户端和服务器 |
插件 | ?带热重载的基于最小依赖的插件系统 |
过程 | ?创建子进程并链接它们(也可与异步库一起使用) |
反射 | ?在编译时描述 C++ 类型以进行序列化 |
序列化二进制 | ?使用反射与二进制格式进行序列化 |
序列化文本 | ?使用反射序列化为文本格式 (JSON) 或从文本格式 (JSON) 序列化 |
插座 | ?同步套接字网络和 DNS 查找 |
弦乐 | ?字符串格式化/转换/操作(ASCII / UTF8 / UTF16) |
测试 | ?所有其他库使用的简单测试框架 |
螺纹加工 | ?原子、线程、线程池、互斥体、条件变量 |
时间 | ?时间处理(相对、绝对、高分辨率) |
每个库都用颜色编码来表示其状态:
一些库有 C 绑定
装订 | 描述 |
---|---|
sc_hashing | 哈希库的绑定 |
库可以按原样使用,将单个文件添加到您的项目中,而不需要任何构建系统。
请参阅构建(用户)以仅使用该库
不久:
SC_COMPILER_ENABLE_STD_CPP=1
Libraries/[Library]/*.h
) CoreFoundation.framework
CoreServices.framework
libdl
( -ldl
)libpthread
( -lpthread
)SCExample 展示了 Sane C++ 库与 Dear ImGui 和 sokol 库的集成(请参阅示例页面)。
测试是使用自托管 SC::Build 项目生成器构建的,描述了 C++ 中的构建。
检查构建(贡献者)以运行测试。
@pagghiu.bsky.social
@pagghiu_
@pagghiu
另外,我也正在阅读以下不和谐内容:
@Pagghiu
或只是 DM,英语和意大利语都可以)@Pagghiu
或只是DM)请花一些时间阅读原则和编码风格。
之后您可以阅读 CONTRIBUTING.md 指南。
Sane C++ 库根据 MIT 许可证获得许可,请参阅 LICENSE.txt 了解更多信息。
在这个 YouTube 频道上有一些视频展示了开发过程的一些细节。
在 Sane Coding Blog 上有一系列关于该项目的博客文章。