Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

为何不使用 asio 的协程封装库 #663

Open
microcai opened this issue Dec 8, 2024 · 1 comment
Open

为何不使用 asio 的协程封装库 #663

microcai opened this issue Dec 8, 2024 · 1 comment

Comments

@microcai
Copy link

microcai commented Dec 8, 2024

既然是基于 asio 做的,为啥又要依赖 阿里的 async_simple 呢?

asio 自己就有协程支持吧。

就算有个中缘由不想用 asio 的协程,那 boost.cobalt 也提供了不错的协程封装。

更重要的是,既然用了 asio ,如果没有计划支持 HTTP3 的话,为何不直接使用同样基于 asio 的 beast 呢?

@qicosmos
Copy link
Owner

qicosmos commented Dec 9, 2024

asio 的协程依赖io_context,没有协程锁 when_any when_all等常用的功能,并不是一个通用的协程库,async_simple是一个通用的协程库,不依赖具体的调度器,功能完备,没有额外的依赖,使用它是合适的。

boost.cobalt 是貌似是这两年才有的库,比async_simple 晚了几年,而且也不满足standalone的要求,依赖整个boost不是一个好选择。

beast 不好用,过度设计,而且cinatra 的诞生都比beast 还早几年,怎么可能还回去用一个并不比cinatra更好用的库呢。另外http3 等有时间了也会支持的,http2也不会少。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants