프로젝트 소개

bytdb는 SQLite의 영역을 차지하면서도 Postgres 방언을 사용하도록 설계된 임베디드형 순수 Go 관계형 데이터베이스입니다. 애플리케이션 프로세스 내에서 완전히 동작하며, 외부 서버, cgo, 소켓 통신이 필요하지 않습니다. 주요 기술 특징은 다음과 같습니다. - Postgres 호환성: `pgwire`를 통해 Postgres 이어 프로토콜을 지원하므로 `psql`, `pgx`, 다양한 ORM(예: GORM) 같은 도구가 직접 연결할 수 있습니다. 도 함수, CTE, 조인, `jsonb` 지원을 포함한 Postgres 방언의 하위 집합을 구현합니다. - 임베디드 아키텍처: `btypedb` 위의 관계형 계층으로 구축되어 테이블, 행, 보조 인덱스를 단일 정렬 키 공간에 인코딩합니다. 이를 통해 효율적인 키 스캔과 원자적 연산이 가능합니다. - 동시성 및 트랜잭션: 기본적으로 직렬화 가능 트랜잭션을 제공합니다. 또한 읽기 중심의 고성능 워크로드를 위한 OCC(낙관적 동시성 제어) 모드를 제공합니다. - 데이터 타입: `timestamp[tz]`, `date`, `uuid`, `text[]`, `jsonb`를 포함한 Postgres급 타입을 전체 연산자 패밀리와 함께 지원합니다. - 내구성 및 보안: 전원 손실 내구성을 위한 WAL(쓰기 전 로그), 선택적 저장 데이터 AES-256-GCM 암호화, S3 호환 객체 저장소로의 비동기 복제(Litestream과 유사)를 제공합니다. - 스키마 관리: 희소 행 값을 지원하여 전체 테이블 재작성 없이 `AddColumn`, `DropColumn` 같은 메타데이터 전용 스키마 변경을 할 수 있습니다. 이 데이터베이스는 표준 `database/sql` 드라이버, 직접 SQL API, 또는 Postgres 이어 프로토콜을 통한 독립 실행형 서버로 사용할 수 있습니다.