본문으로 건너뛰기

© 2026 Molayo

GH Trending릴리즈2026. 05. 08. 23:34

tursodatabase/turso

요약

Turso Database는 Rust로 작성된 SQLite와 호환되는 프로세스 내 SQL 데이터베이스입니다. 이 데이터베이스는 CDC(변경 데이터 캡처), 벡터 지원, 비동기 I/O 등 다양한 고급 기능을 제공하며, Linux, macOS, Windows뿐만 아니라 WebAssembly를 통해 브라우저에서도 사용할 수 있는 크로스 플랫폼성을 자랑합니다. CLI, Rust, JavaScript, Python, Go, .NET, Java 등 광범위한 언어 바인딩을 지원하여 개발 생태계 통합이 매우 용이하며, AI 어시스턴트와의 상호작용을 위한 MCP 서버 모드도 제공합니다.

핵심 포인트

  • SQLite 호환성을 유지하면서 CDC, 벡터 검색 등 고급 기능을 추가한 프로세스 내 SQL 데이터베이스입니다.
  • Linux, macOS, Windows는 물론 WebAssembly를 통해 브라우저 환경까지 지원하는 진정한 크로스 플랫폼 솔루션입니다.
  • Rust 기반으로 개발되었으며, CLI부터 시작하여 Rust, JS, Python, Go 등 주요 언어에 대한 공식 바인딩을 제공합니다.
  • AI 어시스턴트가 데이터베이스와 상호작용할 수 있도록 Model Context Protocol (MCP) 서버 모드를 내장하고 있습니다.

SQLite 호환 프로세스 내 SQL 데이터베이스

Turso Database 는 Rust 로 작성된 SQLite 와 호환되는 프로세스 내 SQL 데이터베이스입니다.

이 소프트웨어는 BETA 단계에 있습니다. 버그와 예상치 못한 동작을 포함할 수 있으므로, 프로덕션 데이터를 사용할 때는 주의해야 하며 백업을 확인하세요.⚠️ 경고:

SQLite 호환성SQL 디렉티브, 파일 형식 및 C API [자세한 내용은 문서 참조] 를 위한 것입니다.
**변경 데이터 캡처 (CDC)**데이터베이스 변경사항을 실시간으로 추적하기 위한 것입니다.
멀티언어 지원
비동기 I/OLinux 에서 io_uring 을 위한 것입니다.

크로스 플랫폼Linux, macOS, Windows 및 브라우저 (WebAssembly 를 통해) 를 위한 것입니다.
벡터 지원정확한 검색 및 벡터 조작을 포함한 것입니다.
개선된 스키마 관리확장 ALTER 지원과 빠른 스키마 변경을 위한 것입니다.

데이터베이스는 다음과 같은 실험적 기능을 포함합니다:

휴면 암호화로 데이터를 로컬에서 보호하기 위한 것입니다.
점진적 계산DBSP 를 사용하여 점진적 뷰 유지 및 쿼리 구독을 위한 것입니다.
풀 텍스트 검색awesome tantivy 라이브러리에 의해 구동됩니다.
멀티 프로세스 WAL 조정. .tshm 사이카를 통한 크로스 프로세스 WAL 리더 및 라이터.

다음 기능은 현재 로드맵에 있습니다:

벡터 인덱싱libSQL 벡터 검색과 유사한 빠른 근사 벡터 검색을 위한 것입니다.

자세한 정보는 Turso Database 매뉴얼을 참조하세요.

💻 명령줄

최신 turso 릴리스를 설치하려면 다음을 사용하세요:

curl --proto '=https' --tlsv1.2 -LsSf \
https://github.com/tursodatabase/turso/releases/latest/download/turso_cli-installer.sh | sh

그런 다음 인터랙티브 쉘을 실행하세요:

$ tursodb

이것은 Turso 인터랙티브 쉘을 시작하여 SQL 문장을 실행할 수 있습니다:

Turso
Enter ".help" for usage hints.
Connected to a transient in-memory database.
...

최신 개발 버전을 빌드하고 실행할 수도 있습니다:

cargo run

docker 를 좋아하신다면, 우리는 커버합니다. 루트 폴더에서 다음을 실행하세요:

make docker-cli-build && \
make docker-cli-run

🦀 Rust

cargo add turso

사용 예제:

let db = Builder::new_local("sqlite.db").build().await?;
let conn = db.connect()?;
let res = conn.query("SELECT * FROM users", ()).await?;

✨ JavaScript

npm i @tursodatabase/database

사용 예제:

import { connect } from '@tursodatabase/database';
const db = await connect('sqlite.db');
const stmt = db.prepare('SELECT * FROM users');
...

🐍 Python

uv pip install pyturso

Example usage:

import turso
con = turso.connect("sqlite.db")
cur = con.cursor()
...

🦫 Go

go get turso.tech/database/tursogo
go install turso.tech/database/tursogo

Example usage:

import (
"database/sql"
_ "turso.tech/database/tursogo"
...

️#️⃣ .NET

Example usage:

using Turso;
using var connection = new TursoConnection("Data Source=:memory:");
connection.Open();
...

☕️ Java

We integrated Turso Database into JDBC. For detailed instructions on how to use Turso Database with java, please refer to the README.md under bindings/java.

🤖 MCP Server Mode

The Turso CLI includes a built-in Model Context Protocol (MCP) server that allows AI assistants to interact with your databases.

Start the MCP server with:

tursodb your_database.db --mcp

Add Turso to your MCP client configuration:

{
"mcpServers": {
"turso": {
...

The MCP server provides nine tools for database interaction:

  • Open a new databaseopen_database

  • Describe the current databasecurrent_database

  • List all tables in the databaselist_tables

  • Describe the structure of a specific tabledescribe_table

  • Execute read-only SELECT queriesexecute_query

  • Insert new data into tablesinsert_data

  • Update existing data in tablesupdate_data

  • Delete data from tablesdelete_data

  • Execute schema modification statements (CREATE TABLE, ALTER TABLE, DROP TABLE)schema_change

Once connected, you can ask your AI assistant:

  • "Show me all tables in the database"
  • "What's the schema for the users table?"
  • "Find all posts with more than 100 upvotes"
  • "Insert a new user with name 'Alice' and email 'alice@example.com'"

Claude Code

If you're using Claude Code, you can easily connect to your Turso MCP server using the built-in MCP management commands:

  • Add the MCP serverto Claude Code:claude mcp add my-database -- tursodb ./path/to/your/database.db --mcp

  • Restart Claude Codeto activate the connection -
    Start queryingyour database through natural language!

claude mcp add my-database -- tursodb ./path/to/your/database.db --mcp
# ↑ ↑ ↑ ↑
# | | | |
...
  • Choose any name for your MCP servermy-database

  • Required separator between Claude options and your command--

  • The Turso database CLItursodb

  • SQLite 데이터베이스 파일 경로./path/to/your/database.db

  • MCP 서버 모드 활성화--mcp

# 로컬 프로젝트 데이터베이스용
cd /your/project
claude mcp add my-project-db -- tursodb ./data/app.db --mcp
...
# 설정된 모든 MCP 서버 목록 표시
claude mcp list
# 특정 서버에 대한 세부 정보 가져오기
...

Claude Desktop

Claude Desktop용에는 claude_desktop_config.json 파일에 구성을 추가하세요.

파일:

{
"mcpServers": {
"turso": {
...

Cursor

Cursor용에는 설정에서 MCP를 구성하세요:

  • Cursor 설정 열기
  • Extensions → MCP로 이동
  • 새 서버 추가: 이름:turso, 명령어:/path/to/.turso/tursodb, 옵션:["./path/to/your/database.db.db", "--mcp"]

또는 Cursor 설정 파일에 직접 추가할 수 있습니다.

MCP 서버는 stdin/stdout을 통해 여러 JSON-RPC 요청을 처리하는 단일 프로세스로 실행됩니다. 이를 직접 상호작용하는 방법은 다음과 같습니다:

cat << 'EOF' | tursodb --mcp
{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"protocolVersion": "2024-11-05", "capabilities": {}, "clientInfo": {"name": "client", "version": "1.0"}}}
{"jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": {"name": "schema_change", "arguments": {"query": "CREATE TABLE users (id INTEGER, name TEXT, email TEXT)"}}}
...
# 기존 데이터베이스 파일과 작업
cat << 'EOF' | tursodb mydb.db --mcp
{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"protocolVersion": "2024-11-05", "capabilities": {}, "clientInfo": {"name": "client", "version": "1.0"}}}
...

Turso Database에 기여해 주시기를 바랍니다. 시작하려면 기여 가이드를 확인하세요.

SQLite 는 세계적으로 가장 신뢰할 수 있는 데이터베이스로 사랑받고 있습니다. SQLite 의 다음 진화는 이 수준의 신뢰성을 맞거나 초과해야 합니다. Turso 는 결정론적 시뮬레이션 테스트 (Deterministic Simulation Testing) 를 기반으로 구축되었으며, Antithesis 에서도 테스트됩니다.

베타 기간 중에도 데이터 손상이 발생하고 시뮬레이터가 이를 감지하지 못했다는 사례를 증명할 수 있는 버그를 발견하면 최대 $1,000.00 을 받을 수 있습니다. 프로젝트가 성숙함에 따라 상금 규모와 버그 범위를 확대할 예정입니다.

보상된 사례 목록:

B-Tree 내부 셀 교체 문제 (depth >=3) (#2106)
비어 있지 않은 데이터베이스에서 autovacuum 을 켜는 것을 허용하지 않음 (#3830)
중첩된 서브쿼리 사용 시 자기 삽입으로 인한 데이터 손상 (#3436)
초기화된 autovacuum 데이터베이스와 함께 Ptrmap 데이터 손상 (#3894)
제약 위반 시 스테이트 롤백 후 WAL 손상 (#4493)

자세한 내용은 여기 참조.

Turso 코어 팀은 자격이 없습니다.

Turso Database 는 현재 중대한 개발 단계에 있으며, 생산 사용에는 아직 준비가 되지 않았습니다.

Turso Database 는 Rust 에서 SQLite 의 다음 진화를 구축하는 프로젝트로, 강력한 오픈 기여 초점과 네이티브 async 지원, 벡터 검색 등 다양한 기능을 갖추고 있습니다. libSQL 프로젝트도 유사한 방향으로 SQLite 를 진화시키려는 시도이지만, 리파크를 통해 재작성을 통해 진행됩니다.

Rust 에서 SQLite 를 재작성하는 것은 겸손한 실험으로 시작되었으며, 놀라운 성공으로 인해 libSQL 을 대체하여 의도된 방향이 되었습니다. 현재 libSQL 은 생산 준비가 되었지만 Turso Database 는 아직 그렇지 않습니다 - 빠르게 진화 중입니다. 자세한 내용은 여기 참조.

  • Pekka Enberg, Sasu Tarkoma, Jon Crowcroft Ashwin Rao (2024). Serverless Runtime / Database Co-Design With Asynchronous I/O. In EdgeSys '24. [PDF] - Pekka Enberg, Sasu Tarkoma, and Ashwin Rao (2023). Towards Database and Serverless Runtime Co-Design. In CoNEXT-SW '23. [PDF] [Slides] - Alperen Keles, Ethan Chou, Harrison Goldstein, Leonidas Lampropoulos (2026). DIRT: Database-Integrated Random Testing. In DBTest '26. [PDF]

본 프로젝트는 MIT 라이선스 하에 라이선스됩니다.

반드시 명시적으로 다른 것을 명시하지 않는 한, Turso Database 에 의도적으로 제출된 모든 기여물은 추가 조건 없이 MIT 라이선스로 라이선스됩니다.

Turso 파트너 여러분께 감사드립니다!

Turso Database 기여자 여러분께 감사드립니다!

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub Trending Rust (weekly)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
2

댓글

0