문자열에서 float, double, 정수 값을 빠르고 정확하게 파싱하는 헤더 전용 C++ 라이브러리로, from_chars를 바로 대체해 사용할 수 있습니다.
meta/folly
Meta에서 폭넓게 사용되는 Facebook의 오픈소스 C++20 핵심 컴포넌트 라이브러리로, Boost와 std를 보완합니다.
- 스타
- 30,555
- 포크
- 5,881
- 열린 이슈
- 487
- 마지막 커밋
- 12시간 전
어떤 프로젝트인가요?
Folly(Facebook Open-source Library)는 실용성과 효율성을 고려해 만든 C++20 컴포넌트 모음입니다. 표준 라이브러리나 Boost에 필요한 기능이 없거나, 해당 구현의 성능이 요구 수준에 미치지 못하는 부분을 보완합니다. 각 컴포넌트는 비교적 독립적이며 몇 개의 심볼로 이뤄진 것부터 큰 모듈까지 다양합니다. Folly는 Meta의 다른 오픈소스 C++ 프로젝트에서 공통 의존성으로 자주 사용됩니다.
Folly는 C++20을 지원하는 gcc, clang 또는 MSVC를 대상으로 합니다. CMake 빌드는 시스템에서 찾지 못한 의존성을 가져오며, getdeps.py를 사용하면 Folly와 관련 프로젝트도 함께 빌드할 수 있습니다. Linux(x86-32, x86-64, ARM), iOS, macOS, Windows(x86-64)에서 실행되지만, CMake는 이 가운데 일부 플랫폼에서만 테스트되었습니다. 프로젝트는 커밋 간 ABI 호환성을 보장하지 않으므로 임시 prefix에 정적 라이브러리로 빌드하는 것을 권장합니다.
새 코드나 아직 안정화되지 않은 코드는 experimental 디렉터리에 있으며, 클라이언트가 사용하는 용도가 아닙니다. 문서는 docs 폴더에 있고 각 컴포넌트에 단위 테스트가 제공됩니다.
핵심 기능
- 01표준 라이브러리나 Boost만으로 부족한 작업에 사용할 C++20 컴포넌트를 제공합니다.
- 02CMake로 빌드하며, 누락된 의존성은 자동으로 가져옵니다.
- 03Linux, macOS, Windows, iOS에서 gcc, clang, MSVC를 지원합니다.
- 04folly와 관련 프로젝트를 함께 빌드하는 getdeps.py 스크립트를 포함합니다.
- 05각 컴포넌트의 단위 테스트와 선택적 googletest 통합을 제공합니다.
활용 사례
- 대규모 C++ 코드베이스에 고성능 유틸리티 컴포넌트를 추가할 때.
- Meta의 다른 오픈소스 C++ 라이브러리에 의존하는 C++ 프로젝트를 빌드할 때.
- 직접 구현한 컨테이너, 문자열 유틸리티 또는 동기화 기본 요소를 테스트된 대안으로 교체할 때.
빠른 시작
- 1
리포지토리를 클론합니다
git clone https://github.com/facebook/folly - 2
프로젝트 디렉터리로 이동합니다
cd folly - 3
CMake 빌드를 구성합니다(누락된 종속 항목을 가져옵니다)
cmake -B _build - 4
라이브러리를 빌드합니다
cmake --build _build
사용 전 알아둘 점
- 커밋 간 ABI 호환성은 보장되지 않으므로 정적 라이브러리로 빌드하고 버전을 고정하는 것을 권장합니다.
- CMake 빌드는 일부 플랫폼에서만 테스트되었으며, 최소 지원 대상은 macOS와 Linux입니다.
- Windows 빌드에서는 많은 테스트가 비활성화되어 있습니다.
포함된 컬렉션
토픽
자주 묻는 질문
- folly은(는) 무엇인가요?
- Meta에서 폭넓게 사용되는 Facebook의 오픈소스 C++20 핵심 컴포넌트 라이브러리로, Boost와 std를 보완합니다. Folly(Facebook Open-source Library)는 실용성과 효율성을 고려해 만든 C++20 컴포넌트 모음입니다. 표준 라이브러리나 Boost에 필요한 기능이 없거나, 해당 구현의 성능이 요구 수준에 미치지 못하는 부분을 보완합니다. 각 컴포넌트는 비교적 독립적이며 몇 개의 심볼로 이뤄진 것부터 큰 모듈까지 다양합니다. Folly는 Meta의 다른 오픈소스 C++ 프로젝트에서 공통 의존성으로 자주 사용됩니다.
- folly은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- folly은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- folly은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. folly의 마지막 커밋은 2026년 11월 5일입니다.
- folly은(는) 어디에 사용할 수 있나요?
- 대규모 C++ 코드베이스에 고성능 유틸리티 컴포넌트를 추가할 때. Meta의 다른 오픈소스 C++ 라이브러리에 의존하는 C++ 프로젝트를 빌드할 때. 직접 구현한 컨테이너, 문자열 유틸리티 또는 동기화 기본 요소를 테스트된 대안으로 교체할 때.
- folly는 어떻게 설치하나요?
- 리포지토리를 클론합니다: git clone https://github.com/facebook/folly 프로젝트 디렉터리로 이동합니다: cd folly CMake 빌드를 구성합니다(누락된 종속 항목을 가져옵니다): cmake -B _build 라이브러리를 빌드합니다: cmake --build _build
- folly은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/meta/folly
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
단위 테스트와 비슷한 구조로 짧은 코드 조각의 실행 시간을 측정하는 C++ 마이크로벤치마크 라이브러리입니다.
GC 오버헤드를 낮게 유지하면서 힙에 많은 항목을 저장하는 빠른 Go용 동시성 지원 퇴거형 인메모리 캐시입니다.
비용 기반 퇴출과 TinyLFU 입장 정책을 갖춘, 빠르고 동시성 높은 Go용 메모리 제한 캐시 라이브러리입니다.
메인 이벤트 루프를 막지 않고 CPU 집약적 작업을 실행하는 Node.js 워커 스레드 풀로, 큐와 취소 기능, 실행 통계를 제공합니다.
primitive 컬렉션, off-heap 버퍼, 큐, 타이머 휠 등을 제공하는 고성능 Java 자료구조 및 유틸리티 라이브러리입니다.