Hasty Briefsbeta

双语

Trifecta Technology - Bert Hubert's writings

a day ago
  • Trifecta 是一个小型开源图片分享网站,使用现代C++、数据库和网络技术构建,旨在实现可信赖和自托管。
  • 代码库非常精简:1200行C++和400行JavaScript,依赖极少,Docker镜像小于2 MB。
  • SQLiteWriter 和 nlohmann::json 提供了类型安全、直接的 SQL 与 JSON 桥接,避免了复杂的 ORM。
  • Alpine.js 被用作一个极简的JavaScript框架,用于在HTML和JSON之间轻松进行数据绑定,无需大量预处理。
  • cpp-httplib 是一个单文件HTTP库,用于Web服务器,支持TLS,但出于安全考虑运行在nginx之后。
  • Trifecta-lib 提取了通用的用户/会话管理,以支持多个项目,并自动生成API端点和错误处理。
  • Meson 构建系统提供了一种平衡的依赖管理方法,使得添加依赖既容易又不至于太随意。
  • Docker 镜像从零开始构建,产生的镜像非常小(<2 MB),Watchtower 可以自动更新。
  • doctest 用于单元测试,包括启动实际的Web服务器进行API测试。
  • argparse 提供命令行参数解析,{fmt} 提供现代字符串格式化,现已纳入最新的C++标准。
  • Trifecta 中不进行图像解析,以避免来自内存不安全的图像库的安全风险;未来可能会添加沙箱机制。