Epic Games, 오픈소스 버전 관리 시스템 Lore 발표
6 days ago
35
- Epic Games가 유지관리하는 Lore는 코드와 대형 바이너리 자산을 함께 다루는 프로젝트를 겨냥한 차세대 오픈소스 버전 관리 시스템임
- 로컬에서 빠르게 시작한 뒤 필요에 따라 확장할 수 있고, 공유·재사용 데이터와 필요한 시점의 다운로드로 대규모 저장소와 팀을 지원함
- 중앙집중형 콘텐츠 주소 기반 저장소를 사용하며, Merkle tree와 불변 revision chain으로 저장소 상태와 변경 이력을 표현함
- 대형 파일은 재사용 가능한 청크로 저장되고, sparse workspace와 on-demand hydration으로 처음부터 모든 데이터를 내려받지 않아도 됨
- MIT 라이선스로 공개됐으며 CLI, C/C++, C#, Rust, Go, Python, JavaScript API와 여러 SDK 저장소를 제공함
코드와 대형 자산을 함께 다루는 버전 관리
- Lore는 Epic Games가 유지관리하는 차세대 오픈소스 버전 관리 시스템임
- 데이터 규모, 팀 규모, 팀 분산, 저장소 규모에서 높은 확장성을 목표로 설계됨
- 코드와 대형 바이너리 자산을 함께 사용하는 프로젝트에 최적화됨
- 게임 및 엔터테인먼트 산업 프로젝트가 예시로 제시됨
- 개발자와 아티스트의 협업 요구를 함께 다룸
- 로컬 모드에서 몇 분 안에 시작할 수 있고, 이후 필요에 따라 확장 가능함
- 팀이 빠르고 직관적이며 실용적인 협업 워크플로를 구축할 수 있는 기반을 제공함
확장성과 대형 파일 처리를 위한 구조
-
공유 데이터와 API
- 주요 기능은 확장성과 대형 자산 처리에 맞춰 구성됨
- 공유·재사용 데이터와 필요한 시점의 다운로드로 속도 저하 없이 확장하는 것을 목표로 함
- 브랜치를 빠르게 만들고 관리하며 동기화할 수 있음
- CLI를 통해 Lore 전체 기능에 일대일로 접근 가능함
- C/C++, C#, Rust, Go, Python, JavaScript용 API로 확장, 커스터마이즈, 통합을 지원함
-
콘텐츠 주소 기반 저장소
- 저장소 구조는 중앙집중형 content-addressed 버전 관리 시스템임
- 저장소 데이터는 콘텐츠 해시로 저장·참조되며 Merkle tree로 표현됨
- 빠른 비교, 무결성 검사, 이력과 브랜치 간 데이터 재사용을 지원함
- revision의 해시 서명은 부모 revision 해시와 포함된 데이터 해시를 포함한 revision 상태에서 파생됨
- 이 구조는 암호학적 무결성을 가진 불변 체인을 형성함
-
청크 저장과 필요한 시점의 다운로드
- 대형 파일과 워크스페이스 처리는 청크 저장과 on-demand hydration을 사용함
- 파일은 재사용 가능한 청크로 저장되고 인덱스 기반 조회를 사용함
- 중복을 줄이고 대형 바이너리 자산의 업데이트와 전송을 효율화함
- workspace는 필요한 파일 데이터만 가져와 가볍게 유지될 수 있음
- sparse workspace를 통해 처음부터 모든 데이터를 다운로드하지 않아도 됨
-
서버와 브랜치 모델
- 서버 구조는 캐싱을 포함한 서비스 기반 아키텍처임
- durable storage 앞단의 캐싱으로 대형 팀과 대형 저장소의 처리량 확장을 지원함
- 브랜치는 가벼운 mutable reference로 동작해 생성과 전환 비용이 낮고, 기본 데이터 중복이 없음
공개 저장소와 문서
- Epic Games는 Lore를 MIT 라이선스로 완전 오픈소스 공개함
-
Homepage
-
개발자
- Epic Games, 오픈소스 버전 관리 시스템 Lore 발표