Skip to content

duskgrow/future23

Repository files navigation

future23

CI License C++

一个现代的 C++23 Future/Promise 库,提供丰富的异步编程语义。

特性

  • 🚀 高性能: 专为计算密集型任务优化
  • 📦 Header-only: 仅需包含头文件,无需链接额外库
  • 🆕 C++23: 充分利用现代 C++ 特性
  • 🔗 无依赖: 仅依赖标准库
  • 🛡️ 类型安全: 编译时类型检查和异常安全

快速开始

要求

  • C++23 兼容编译器 (GCC 12+, Clang 15+, MSVC 2022+)
  • CMake 3.20+

基本用法

#include <future23/future23.hpp>
#include <iostream>

int main() {
    std::cout << "future23 版本: " << future23::VERSION_STRING << std::endl;
    return 0;
}

编译

mkdir build && cd build
cmake ..
make

运行测试

ctest

项目结构

future23/
├── include/future23/     # 头文件
│   ├── future23.hpp     # 主入口文件
│   └── version.hpp      # 版本信息 (自动生成)
├── tests/               # 单元测试
├── CMakeLists.txt       # CMake 配置
├── LICENSE              # MIT 许可证
└── README.md            # 项目文档

开发状态

🚧 开发中 - 这是一个早期开发阶段的项目。

当前已实现:

  • ✅ 项目基础架构
  • ✅ CMake 构建系统
  • ✅ 测试框架
  • ✅ 版本管理系统

计划实现:

  • 🚧 核心 Future/Promise 类
  • 🚧 异步执行器
  • 🚧 组合子函数 (then, when_all, when_any)
  • 🚧 协程集成

CI/CD

项目使用 GitHub Actions 进行自动化:

  • CI: 每次推送和 PR 时运行构建、测试和代码检查
  • Release: 创建 git tag 时自动发布新版本
  • Changelog: 自动生成变更日志并更新 GitHub Release

许可证

本项目采用 MIT License 开源许可证。

贡献

欢迎贡献代码!请确保:

  1. 遵循现有的代码风格
  2. 添加适当的测试
  3. 更新相关文档

项目使用 Conventional Commits 格式,详见 贡献指南


注意: 本项目参考了 folly、boost::asio、rust tokio、scala future 等优秀实现的设计理念。

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors