【问题标题】:libuv vs. glib gio: Which is a better option?libuv 与 glib gio:哪个是更好的选择?
【发布时间】:2018-02-22 18:39:23
【问题描述】:

我正在寻找用于异步 I/O、TCP/UDP 网络支持、线程和事件循环的 C 库。 我查看了 GLib 的 GIO、GThread、GMainContext、GMainLoop 以及 Node.js 使用的 Libuv。功能类似。这两个库似乎没有可比性。我只在 Linux 上寻找纯 C 支持。我不关心可移植性或多语言支持。

关于哪个相对容易使用的任何建议或指示?

【问题讨论】:

    标签: glib libuv


    【解决方案1】:

    GLib/GIO 提供了比 libuv 更多的其他功能,尽管从您提供的列表中看起来 libuv 确实提供了您想要的一切。

    GObject(GIO 所基于)有一组约定,需要一些时间才能加快速度(尽管有可用的文档和教程);一旦你掌握了它们,它们会让用 C 编写面向对象的代码变得相当轻松。

    我没用过libuv,所以不能说。

    【讨论】:

    • 我知道您的观察,但除其他外,Glib 不使用 epoll,但我同意其他方式。
    • 令人惊讶的是,尽管这两个库在我所寻求的目的上有如此多的相似之处,但在网上任何地方都没有可比性。
    • 正确,GLib 目前不使用 epoll()。有一个关于它的错误 (bugzilla.gnome.org/show_bug.cgi?id=699132),但不太可能在不久的将来修复。
    • 还有一个带有epoll实现的branch in the GLib repository
    • 该分支已有 4 年历史,未完成且未维护。 (作为 GLib 维护者)我建议人们不要使用它。
    猜你喜欢
    • 1970-01-01
    • 2013-09-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-13
    • 1970-01-01
    • 2012-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多