Nos complace compartir el lanzamiento de un nuevo prototipo que podría cambiar la forma en que los desarrolladores de C interactúan con MongoDB: el amongoc Biblioteca. Este controlador experimental aprovecha el potencial de la programación asíncrona para ofrecer una interfaz eficiente y sin bloqueos para las operaciones de MongoDB. Aunque aún se encuentra en versión preliminar pública y no está listo para producción, sus comentarios serán cruciales para definir la dirección futura 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 Características de vista previa.
¿Qué es amongoc?
amongoc, abreviatura de "controlador asíncrono de MongoDB C", está diseñado para desarrolladores que necesitan una biblioteca cliente asíncrona y de alto rendimiento para MongoDB. Implementa un subconjunto seleccionado de API de controladores de 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 información crucial que podría influir en el desarrollo de una solución lista para producción en un futuro próximo.
¿Por qué optar por lo asincrónico?
La motivación para desarrollar amongoc radica en la optimización del rendimiento y en proporcionar alta concurrencia. La programación asíncrona desacopla el inicio de una tarea de su continuación, solucionando las ineficiencias de las operaciones síncronas, en particular las de E/S, que son inherentemente lentas y pueden bloquear otros procesos. La programación asíncrona permite que las aplicaciones mantengan su capacidad de respuesta mientras esperan a que se completen las operaciones de E/S, lo que la hace ideal para casos de uso de alto rendimiento con uso intensivoamongoc de la red. también facilitará la integración de MongoDB en frameworks asíncronos como Drogon. Cabe destacar que también ha sido la característica más solicitada por los usuarios para el controlador de C.
Introducción a Amongoc
Para amongoc explorar, visita el repositorio de GitHub y accede a nuestra completa documentación. Nuestros recursos incluyen:
Una guía de inicio rápido paso a paso para ayudarlo a configurar e iniciar su primera conexión.
Documentación de referencia detallada que cubre la configuración, construcción y uso de la biblioteca.
Tutoriales que lo guiarán a través de casos de uso comunes y mostrarán el potencial de las operaciones asincrónicas.
Una lista de funcionalidades de amongoc
Descripciones de las consideraciones de diseño de amongoc y el modelo de asincronía de amongoc
El siguiente ejemplo es una aplicación que inicializa un bucle de eventos asincrónico e intenta establecer una conexión con un servidor MongoDB local utilizando la biblioteca amongoc:
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; }
Comentarios: Tu voz importa
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.