Docs 菜单
Docs 主页
/ / /
C 驱动程序

异步C驱动程序:公开预览版

我们很高兴与股票一个新原型的发布:amongoc 库,它可以重塑C开发者与MongoDB交互的方式。此实验性驾驶员利用异步编程的强大功能,为MongoDB操作提供高效、非阻塞的接口。尽管仍处于公开预览阶段,尚未准备好投入生产,但您的反馈将在确定该项目的未来方向方面发挥至关重要的角色。

重要

预览功能

预览功能具有技术和安全限制,因此我们不建议在生产环境中使用。要学习;了解有关预览功能注意事项的更多信息,请参阅 预览功能。

amongoc是“异步MongoDB C驾驶员”的缩写,专为需要MongoDB的高性能异步客户端端库的开发人员而设计。它实现了MongoDB驾驶员API 的选定子集,以便让您初步了解基于 C 的异步客户端的外观。通过评估此原型,开发人员可以帮助我们收集关键见解,这些见解可能会在不久的将来影响生产就绪解决方案的开发。

构建 amongoc 的动机在于性能优化和提供高并发性。异步编程将任务的启动与其延续解耦,解决了同步操作效率低下的问题,尤其是 I/O,其速度本来就很慢,并且可能区块其他进程。异步编程允许应用程序在等待 I/O 操作完成的同时保持响应,非常适合高性能、网络密集型使用案例。amongoc 还将促进将MongoDB集成到 Drogon 等异步框架中。值得注意的是,它也是用户对C驾驶员请求最多的功能

要探索 amongoc,请访问Github存储库 并访问权限我们全面的文档。我们的资源包括:

以下示例是一个应用程序,它初始化异步事件循环并尝试使用 amongoc 库建立与本地MongoDB服务器的连接:

#include <amongoc/amongoc.h> // Make all APIs visible
#include <stdio.h>
#include <stdlib.h>
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 创造什么!

后退

MongoDB C 驱动程序

在此页面上