비동기 C 드라이버: 공개 미리 보기
C 개발자가 MongoDB 와 상호 작용 방식을 재구성할 수 있는 새로운 프로토타입인 amongoc
라이브러리의 출시하다 주식 되어 기쁩니다. 이 실험적 운전자 비동기 프로그래밍의 강력한 기능을 활용하여 MongoDB 작업을 위한 효율적인 비차단 인터페이스를 제공합니다. 아직 공개 미리 보기 단계이고 아직 프로덕션 준비가 되지 않았지만, 여러분의 피드백 이 프로젝트 의 향후 방향을 결정하는 데 중요한 역할 합니다.
betweenoc이란 무엇인가요?
amongoc
'비동기 MongoDB C 운전자 '의 약자이며, MongoDB 위한 고성능 비동기 클라이언트 라이브러리가 필요한 개발자를 위해 설계되었습니다. MongoDB 운전자 API의 선택된 하위 집합을 구현하여 C 기반 비동기 클라이언트 모습을 미리 살펴볼 수 있습니다. 개발자는 이 프로토타입을 평가함으로써 가까운 시일 내에 프로덕션 환경에서 바로 사용할 수 있는 솔루션 개발에 영향을 줄 수 있는 중요한 인사이트를 수집하는 데 도움을 줄 수 있습니다.
비동기식으로 고 (Go) 이유
amongoc
빌드의 동기는 성능 최적화와 높은 동시성 제공에 있습니다. 비동기 프로그래밍은 작업 시작과 연속을 분리하여 본질적으로 느리고 다른 프로세스를 차단 수 있는 동기 작업, 특히 I/O의 비효율성을 해결합니다. 비동기 프로그래밍을 사용하면 애플리케이션이 I/O 작업이 완료될 때까지 기다리는 동안 응답성을 유지할 수 있으므로amongoc
고성능의 네트워크 집약적인 사용 사례에 이상적입니다. 는 또한 MongoDB 를 Drogon과 같은 비동기 프레임워크에 통합하는 것을 용이하게 합니다. 특히 사용자가 가장 많이 요청한 C 운전자 기능 이기도 합니다.
betweenoc 시작하기
를 amongoc
살펴보려면 GitHub 리포지토리 를 방문하여 포괄적인 설명서 액세스. 당사의 리소스는 다음과 같습니다:
다음 예시 비동기 이벤트 루프 초기화하고 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
기대합니다!