AI Briefing

walgit: 데이터베이스 없는 단일 바이너리, S3 버킷이 곧 Git 서버

tobi/walgit

·2026.08.25 08:06

walgit은 S3 또는 GCS 버킷을 백엔드로 사용하는 Git 서버다. 데이터베이스, 리더 노드, 로컬 상태 관리 없이 단일 바이너리만 실행하면 된다. 모든 머신은 버킷을 소스로 하는 일회성 캐시로 동작하며, 버킷 자체가 저장소의 진실이 된다.

Cursor가 제안한 'Continuity' 아키텍처를 Rust로 구현했다. 쓰기 전 로그(WAL)를 객체 저장소에 두고, 디스크에 있는 저장소는 캐시로만 취급한다. compare-and-swap 기반의 CAS가 컨센서스를 처리해 선거나 쿼럼이 필요 없다. 어떤 인스턴스든 push를 받을 수 있고, 충돌 시 한쪽만 성공한다.

기존 GitHub Spokes 방식이 로컬 NVMe와 복제 집합에 의존하는 것과 달리, walgit은 머신보다 큰 저장소도 처리한다. packfile을 원격으로 읽고, 클론 데이터를 서버가 아닌 버킷이나 CDN에서 정적 파일로 제공한다. bundle-uri를 통해 최신 풀과 체인된 일일 데이터를 내려받아 서버 부하를 최소화한다.

스마트 HTTP v0/v2, Git LFS, 웹 UI, JSON API, 웹훅, 리포지토리별 push 정책을 지원한다. S3 호환 스토어(AWS, MinIO, R2 등)와 GCS를 1급 시민으로 지원한다. 작은 머신에서 모노레포를 호스팅하거나, 서버리스 환경에서 Git 인프라를 구축하려는 개발자에게 적합하다.

GitHub
GitHub 저장소

tobi/walgit

원문에 등록된 설명이 없습니다.

Rust

이 한국어 소개글은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.

AI 처리 방식을 확인하거나, 소개 오류와 출처 표기 문제, 삭제 요청을 문의 · 건의로 알려주세요.