我们很高兴与股票一个新原型的发布:amongoc
库,它可以重塑C开发者与MongoDB交互的方式。此实验性驾驶员利用异步编程的强大功能,为MongoDB操作提供高效、非阻塞的接口。尽管仍处于公开预览阶段,尚未准备好投入生产,但您的反馈将在确定该项目的未来方向方面发挥至关重要的角色。
betweenoc是什么?
amongoc
是“异步MongoDB C驾驶员”的缩写,专为需要MongoDB的高性能异步客户端端库的开发人员而设计。它实现了MongoDB驾驶员API 的选定子集,以便让您初步了解基于 C 的异步客户端的外观。通过评估此原型,开发人员可以帮助我们收集关键见解,这些见解可能会在不久的将来影响生产就绪解决方案的开发。
为何Go异步?
构建 amongoc
的动机在于性能优化和提供高并发性。异步编程将任务的启动与其延续解耦,解决了同步操作效率低下的问题,尤其是 I/O,其速度本来就很慢,并且可能区块其他进程。异步编程允许应用程序在等待 I/O 操作完成的同时保持响应,非常适合高性能、网络密集型使用案例。amongoc
还将促进将MongoDB集成到 Drogon 等异步框架中。值得注意的是,它也是用户对C驾驶员请求最多的功能。
betweenoc入门
要探索 amongoc
,请访问Github存储库 并访问权限我们全面的文档。我们的资源包括:
详细的参考文档,涵盖库的配置、构建和使用。
教程将引导您完成常见使用案例并展示异步操作的潜力。
关于 Atlas 的设计注意事项 和 Atlas 的异步模型 的描述
以下示例是一个应用程序,它初始化异步事件循环并尝试使用 amongoc
库建立与本地MongoDB服务器的连接:
amongoc_box on_connect(amongoc_box userdata, amongoc_status *status, amongoc_box result); int main(void) { amongoc_loop loop; amongoc_status status = amongoc_default_loop_init(&loop); amongoc_if_error(status, msg) { fprintf(stderr, "Failed to prepare the event loop: %s\n", msg); return 2; } // Initiate a connection amongoc_emitter em = amongoc_client_new(&loop, "mongodb://localhost:27017"); // Set the continuation em = amongoc_then(em, &on_connect); // Run the program amongoc_detach_start(em); amongoc_default_loop_run(&loop); // Clean up amongoc_default_loop_destroy(&loop); return 0; } amongoc_box on_connect(amongoc_box userdata, amongoc_status *status, amongoc_box result) { // We aren't using the userdata for this example. (void)userdata; // Check for an error amongoc_if_error(*status, msg) { fprintf(stderr, "Error while connecting to server: %s\n", msg); } else { printf("Successfully connected!\n"); amongoc_client *client; amongoc_box_take(client, result); // `client` now stores a valid client. We don't do anything else, so just delete it: amongoc_client_delete(client); } amongoc_box_destroy(result); return amongoc_nil; }
反馈:你的声音很重要
此公开预览发布的重点是收集用户反馈,为 amongoc
的生产就绪版本的架构决策提供信息。我们邀请您在Github讨论和问题中股票您的想法和建议。我们特别想了解您对接口以及构建和运行时要求的意见。我们的目标是收集尽可能多的用户意见,以满足用户社区的需求和期望。您的反馈非常宝贵,我们热切期待您的来信,并看看您将使用 amongoc
创造什么!