AI News HubLIVE
站內改寫1 分鐘閱讀

Show HN: AsyncFutures – 一個用於異步/併發代碼執行的Ruby gem

AsyncFutures 是一個 Ruby gem,它提供了統一的 API 來在 Ractors、Threads 和 Fibers 上執行併發代碼,使得測試不同原語的性能更加容易。該 gem 圍繞一個靈活的 Future 類構建,所有併發原語返回的 Future 對象具有相同的 API 和行為。作者強調這是通過手動實踐學習併發編程的結果,並非由 AI 生成。gem 在 CRuby 4.0 上達到 100% 的行和分支覆蓋率,並以 0BSD 許可發佈。

來源Hacker News AI作者: eestrada

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 並反饋意見。