프로젝트 소개
Turso Database는 Rust로 구현된 인프로세스 SQL 데이터베이스로, SQLite와 호환되며 Turso 팀에 의해 MIT 라이선스 하에 개발되었습니다. README 파일은 이 제품을 실제 운영 환경에서 사용되는 엔진으로 묘사하며, 가상 머신처럼 작동한다고 설명합니다. SQLite와 마찬가지로 SQL을 VDBE라는 가상 머신의 바이트코드로 컴파일하여 실행합니다. 이러한 설계는 하나의 핵심 엔진으로 여러 SQL 다이얼렉트를 호스트할 수 있게 해주며, 주요 프론트엔드는 SQLite이고 PostgreSQL은 실험적인 프론트엔드로 별도의 다이얼렉트와 웨어 프로토콜을 갖습니다. 이 프로젝트는 "데이터베이스의 LLVM"이라는 목표를 가지고 있으며, 하나의 현대적 핵심과 많은 프론트엔드를 컴파일링하는 방식입니다.
주요 기능은 다음과 같습니다:
- SQL 다이얼렉트, 파일 포맷 및 C API 수준에서 SQLite 호환성, SQLite 버전 3.50.4을 추적하며 COMPAT 문서에서 남은 차이점을 추적합니다. 기존 SQLite 데이터베이스 파일은 그대로 작동합니다.
- 다중 버전 동시성 제어(MVCC)를 사용한 쓰기 처리량 향상을 위한 BEGIN CONCURRENT.
- 실시간 데이터베이스 변경 사항을 추적하는 변경 데이터 캡처(CDC).
- Go, JavaScript, Java, .NET, Python, Rust 및 WebAssembly용 언어 바인딩, crates.io, npm, PyPI, Maven Central 및 Go 모듈을 통한 설치.
- Linux에서 io_uring을 통한 비동기 I/O.
- Linux, macOS, Windows 및 WebAssembly를 통한 크로스 플랫폼 지원.
- 정확한 검색 및 벡터 조작을 포함한 벡터 지원.
- 확장된 ALTER 지원과 더 빠른 스키마 변경을 위한 개선된 스키마 관리.
실험적 기능으로는 PostgreSQL 다이얼렉트 및 웨어 프로토콜 호환성, 저장 시 암호화, DBSP를 사용한 증분 계산 및 증분 뷰 유지보수 및 쿼리 구독, tantivy 라이브러리를 기반으로 한 전체 텍스트 검색, 그리고 .tshm 사이드카를 통한 다중 프로세스 WAL 조정이 있습니다. 근사 검색을 위한 벡터 인덱싱은 향후 로드맵에 포함되어 있습니다.
시작하기 자료에는 쉘 설치 스크립트를 통해 설치 가능한 명령줄 쉘(tursodb), cargo를 통한 소스 빌드, make를 통한 Docker 타겟이 포함됩니다. Rust, JavaScript, Python, Go, .NET 및 Java용 짧은 예제 코드 스니펫과 Java용 JDBC 통합도 제공됩니다.
CLI는 --mcp 플래그로 시작되는 모델 컨텍스트 프로토콜(MCP) 서버를 내장하고 있어, AI 어시스턴트가 데이터베이스와 상호작용할 수 있도록 합니다. README에는 open_database, current_database, list_tables, describe_table, execute_query, insert_data, update_data, delete_data 및 schema_change 등 9개의 도구가 문서화되어 있으며, Claude Code, Claude Desktop 및 Cursor용 구성 예제와 stdin/stdout을 통한 직접적인 JSON-RPC 사용 방법이 제공됩니다.
신뢰성 및 상태: README에서는 Turso가 여러 조직의 생산 애플리케이션을 지원하고 있으며, 네이티브 결정론적 시뮬레이션 테스트 스위트와 Antithesis를 포함한 다양한 도구로 테스트되었음을 명시하고 있습니다. 프로젝트가 아직 1.0 버전에 도달하지 않았고 일부 기능은 명시적으로 실험적이라고 언급하며, 그 전까지는 독립적인 백업을 권장합니다. Turso Database는 이전의 libSQL 포크와 구별되며, Rust 재작성이 의도된 방향으로, 두 버전 모두 운영 환경에서 실행되고 있다고 설명합니다. 저장소에는 학술 논문 및 프로젝트 파트너 목록이 있으며, MIT 라이선스 하에 기여를 받고 있습니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.