HTTP, 네트워킹, 데이터베이스, XML/JSON, 로깅을 아우르는 크로스플랫폼 C++ 클래스 라이브러리로, 네트워크 중심 애플리케이션 개발에 적합합니다.
idealvin/coost
고루틴 스타일 코루틴, 네트워킹, 로깅, 플래그 파싱, JSON, 단위 테스트와 벤치마크를 제공하는 경량 C++ 기반 라이브러리입니다.
- 스타
- 4,225
- 포크
- 593
- 열린 이슈
- 0
- 마지막 커밋
- 27일 전
어떤 프로젝트인가요?
coost는 C++ 서비스에 일반적으로 필요한 기반 구성 요소를 하나의 의존성으로 묶은 C++ 기반 라이브러리입니다. Linux, macOS, Windows, FreeBSD와 x86, x64, ARM, ARM64 CPU를 지원합니다.
이 라이브러리는 기본적으로 여러 스레드에서 스케줄링되는 go 스타일 코루틴을 제공하며, 메모리 사용량을 낮추기 위해 스택을 공유합니다. 이를 기반으로 코루틴 방식의 소켓 API, TCP 서버 및 클라이언트 래퍼, 간단한 JSON 기반 RPC 프레임워크를 제공합니다. 그 밖에도 크래시 발생 시 스택 트레이스를 출력하는 로거, 명령줄 인수와 설정 파일을 위한 플래그 파서, fluent interface를 지원하는 JSON 타입, 단위 테스트 프레임워크와 벤치마크 프레임워크가 포함되어 있습니다.
코드는 include/ 아래의 헤더, libco로 컴파일되는 src/ 아래의 소스, unitest/ 아래의 테스트로 구성됩니다. 프로젝트는 빌드 도구로 xmake를 권장하며 CMake도 지원합니다. C++17 컴파일러가 필요합니다.
핵심 기능
- 01여러 스레드에서 스케줄링되는 go 스타일 코루틴을 제공하며, 메모리 사용량을 낮추기 위해 스택을 공유합니다.
- 02코루틴 방식의 소켓 API, IPv6를 지원하는 TCP 서버/클라이언트 래퍼, JSON 기반 RPC 프레임워크를 제공합니다.
- 03크래시 발생 시 스택 트레이스를 출력하고 런타임 어설션을 지원하는 로거입니다.
- 04별칭과 설정 파일 자동 생성을 지원하는 명령줄 인수 및 설정 파일용 플래그 파싱 기능입니다.
- 05fluent interface를 지원하는 내장 JSON 타입과 단위 테스트 및 벤치마크 프레임워크를 제공합니다.
활용 사례
- 콜백 중심 코드 없이 코루틴을 사용해 고성능 C++ 네트워크 서비스를 구축할 수 있습니다.
- C++ 애플리케이션에 빠르고 크래시 대응 기능을 갖춘 로깅을 추가할 수 있습니다.
- C++ 도구에서 명령줄 플래그와 설정 파일을 파싱할 수 있습니다.
- 여러 기반 라이브러리를 각각 사용하는 대신 하나의 의존성으로 대체할 수 있습니다.
빠른 시작
- 1
프로젝트 페이지에서 빌드 도구 xmake를 설치합니다
- 2
coost 루트 디렉터리에서 libco를 빌드합니다
xmake - 3
단위 테스트 프로그램을 빌드합니다
xmake b unitest - 4
모든 단위 테스트 케이스를 실행합니다
xmake r unitest
사용 전 알아둘 점
- C++17을 지원하는 컴파일러가 필요합니다.
- 번들로 제공되는 코드 중 일부는 다른 프로젝트에서 가져온 것으로, 라이선스가 다를 수 있습니다.
포함된 컬렉션
토픽
자주 묻는 질문
- coost은(는) 무엇인가요?
- 고루틴 스타일 코루틴, 네트워킹, 로깅, 플래그 파싱, JSON, 단위 테스트와 벤치마크를 제공하는 경량 C++ 기반 라이브러리입니다. coost는 C++ 서비스에 일반적으로 필요한 기반 구성 요소를 하나의 의존성으로 묶은 C++ 기반 라이브러리입니다. Linux, macOS, Windows, FreeBSD와 x86, x64, ARM, ARM64 CPU를 지원합니다.
- coost은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- coost은(는) Other 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- coost은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. coost의 마지막 커밋은 2026년 9월 28일입니다.
- coost은(는) 어디에 사용할 수 있나요?
- 콜백 중심 코드 없이 코루틴을 사용해 고성능 C++ 네트워크 서비스를 구축할 수 있습니다. C++ 애플리케이션에 빠르고 크래시 대응 기능을 갖춘 로깅을 추가할 수 있습니다. C++ 도구에서 명령줄 플래그와 설정 파일을 파싱할 수 있습니다. 여러 기반 라이브러리를 각각 사용하는 대신 하나의 의존성으로 대체할 수 있습니다.
- coost는 어떻게 설치하나요?
- 프로젝트 페이지에서 빌드 도구 xmake를 설치합니다 coost 루트 디렉터리에서 libco를 빌드합니다: xmake 단위 테스트 프로그램을 빌드합니다: xmake b unitest 모든 단위 테스트 케이스를 실행합니다: xmake r unitest
- coost은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/idealvin/coost
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
Sogou의 백엔드 서비스에서 사용하는 C++11 병렬 컴퓨팅 및 비동기 네트워킹 프레임워크로, DAG 기반 태스크 워크플로를 구축합니다.
확장 가능한 포매터와 훅을 제공하는 Go용 구조화 로거로, API 호환성을 갖췄으며 현재는 유지보수 모드입니다.
Go용 빠르고 구조화된 레벨 로깅 라이브러리로, 할당이 없는 Logger와 유연한 SugaredLogger API를 제공합니다.
체이닝 API와 레벨·샘플링 로깅, 선택적 CBOR 출력을 지원하는 Go용 제로 할당 JSON 로거
JSON 및 logfmt 로그를 읽기 쉬운 형식으로 보여 주고 필터링, 정렬, 실시간 추적을 지원하는 명령줄 로그 뷰어입니다.