Show HN: AsyncFutures – 一个用于异步/并发代码执行的Ruby gem
AsyncFutures 是一个 Ruby gem,它提供了统一的 API 来在 Ractors、Threads 和 Fibers 上执行并发代码,使得测试不同原语的性能更加容易。该 gem 围绕一个灵活的 Future 类构建,所有并发原语返回的 Future 对象具有相同的 API 和行为。作者强调这是通过手动实践学习并发编程的结果,并非由 AI 生成。gem 在 CRuby 4.0 上达到 100% 的行和分支覆盖率,并以 0BSD 许可发布。
AsyncFutures 是一个新发布的 Ruby gem,旨在简化并发编程。Ruby 提供了多种并发原语,如 Ractors、Threads 和 Fibers,但它们拥有不同的 API 和行为,即使看起来类似的方法(例如 join)在 Ractor 和 Thread 上表现也不同。AsyncFutures 通过 Executor 类解决了这个问题,这些 Executor 在所有原语上提供几乎一致的行为,并返回一个具有统一 API 的 Future 对象。
该 gem 的核心是 Future 类,它提供了类似 Promise 的接口,支持链式操作和错误处理。开发者可以使用相同的代码模式在不同的并发模型之间切换,从而更容易评估性能并选择最佳方案。
作者在业余时间花费数月完成了这个 gem,并强调整个过程没有使用 AI 辅助(“vibe coding”),而是通过实际编码来学习并发编程的正确做法。gem 的代码在 CRuby 4.0 上实现了 100% 的行和分支覆盖率,并以 0BSD 许可发布,这意味着几乎没有任何使用限制。
作者欢迎社区审查代码、测试 gem 并反馈意见。