Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Controlador C asíncrono: Vista previa pública

Nos complace compartir el lanzamiento de un nuevo prototipo que podría transformar la forma en que los desarrolladores de C interactúan con MongoDB: el amongoc librería. Este controlador experimental aprovecha el poder de la programación asincrónica para ofrecer una interfaz eficiente y no bloqueante para operaciones en MongoDB. Aunque todavía en vista previa pública y no está listo para producción, tu opinión desempeñará un rol crucial en definir el futuro de este Proyecto.

Importante

Características de vista previa

Las funciones de vista previa tienen limitaciones técnicas y de seguridad, por lo que no recomendamos su uso en entornos de producción. Para obtener más información sobre las consideraciones de las funciones de vista previa, consulte Funcionalidades de vista previa.

amongocLa abreviatura de "controlador asincrónico de MongoDB en C" está diseñada para desarrolladores que requieren una biblioteca cliente asincrónica y de alto rendimiento para MongoDB. Implementa un subconjunto seleccionado de las API del controlador MongoDB para ofrecer un adelanto de cómo podría ser un cliente asíncrono basado en C. Al evaluar este prototipo, los desarrolladores pueden ayudarnos a recopilar perspectivas críticas que podría influir en el desarrollo de una solución lista para producción en un futuro cercano.

La motivación detrás de la construcción de amongoc está arraigada en la optimización del rendimiento y en ofrecer una alta concurrencia. La programación asíncrona desacopla el inicio de una tarea de su continuación, abordando las ineficiencias de las operaciones síncronas, en particular las de entrada/salida (I/O), que son intrínsecamente lentas y pueden bloquear otros procesos. La programación asíncrona permite que las aplicaciones sigan respondiendo mientras esperan que se completen las operaciones de entrada/salida, lo que la hace ideal para casos de uso de alto rendimiento e intensivos en redes. amongoc también facilitará la integración de MongoDB en marcos asíncronos como Drogon. Cabe destacar que también ha sido la funcionalidad más solicitada para el driver C por parte de los usuarios.

Para explorar amongoc, visita el Repositorio en GitHub y accede a nuestra completa Documentación. Nuestros recursos incluyen:

El siguiente ejemplo es una aplicación que inicializa un bucle de eventos asíncronos e intenta establecer una conexión a un servidor local de MongoDB usando la librería amongoc:

#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;
}

Esta versión de previa pública se centra en recopilar los comentarios de la comunidad para informar las decisiones arquitectónicas de una versión lista para producción de amongoc. Te invitamos a compartir tus comentarios y sugerencias en debates y incidencias de GitHub. Nos interesan especialmente tus opiniones sobre la interfaz, los requisitos de compilación y de ejecución. Nuestro objetivo es recabar la máxima cantidad de aportaciones de la comunidad para alinearlas con las necesidades y expectativas de la comunidad de usuarios. Tus comentarios son invaluables, y estamos impacientes por conocer tu opinión y ver lo que crearás con amongoc.

Volver

Overview

En esta página