실험적 기능
CLI와 각 SDK에서 실험적 기능을 활성화하는 방법이에요. 어떤 플래그와 옵션이 있는지 차근차근 살펴볼게요.
출처: 문서
본문
일부 Turso 기능은 아직 실험적이라 사용 전에 명시적으로 활성화해야 해요. 실험적 기능은 테스트할 만큼은 안정적이지만, API가 이후 릴리스에서 바뀔 수 있어요.
Experimental Features List
| Feature | Flag | Description |
|---|---|---|
| Views | views |
CREATE VIEW와 CREATE MATERIALIZED VIEW |
| Custom Types | custom_types |
STRICT 테이블을 위한 CREATE TYPE, DROP TYPE, CREATE DOMAIN, DROP DOMAIN |
| Encryption | encryption |
PRAGMA cipher / hexkey를 통한 저장 시 암호화 |
| Index Methods | index_method |
FTS와 커스텀 인덱스 타입을 위한 CREATE INDEX ... USING |
| Autovacuum | autovacuum |
데이터베이스 파일 자동 압축 |
| Vacuum | vacuum |
제자리 VACUUM 압축 |
| Attach | attach |
ATTACH DATABASE와 DETACH DATABASE |
| Generated Columns | generated_columns |
가상 GENERATED ALWAYS AS 컬럼 |
| Without Rowid | without_rowid |
WITHOUT ROWID 테이블 |
| Multi-Process WAL | multiprocess_wal |
Multi-Process Access — 공유 WAL 코디네이터로 OS 프로세스 간 데이터베이스 파일 공유 |
| MVCC Passive Checkpoint | mvcc_passive_checkpoint |
MVCC 아래 passive checkpointing (journal_mode=mvcc) |
참고로, 트리거는 Turso 0.7부터 더 이상 실험적이지 않아요 — CREATE TRIGGER와 DROP TRIGGER는 플래그 없이 동작해요.
CLI
tursodb를 시작할 때 --experimental-<feature> 플래그를 넘기세요:
tursodb --experimental-views --experimental-custom-types database.db
여러 플래그를 조합할 수도 있어요:
tursodb \
--experimental-views \
--experimental-custom-types \
--experimental-encryption \
--experimental-index-method \
--experimental-vacuum \
database.db
Rust SDK
Rust 바인딩은 fluent한 Builder API를 사용해요:
use turso::Builder;
let db = Builder::new_local("database.db")
.experimental_encryption(true)
.experimental_materialized_views(true)
.experimental_custom_types(true)
.experimental_index_method(true)
.experimental_vacuum(true)
.experimental_attach(true)
.experimental_multiprocess_wal(true)
.build()?;
Python SDK
experimental_features 파라미터에 쉼표로 구분된 문자열을 넘기세요:
import turso
conn = turso.connect(
"database.db",
experimental_features="views,custom_types,vacuum",
)
JavaScript / Node.js SDK
experimental 옵션에 피처 문자열 배열을 넘기세요:
import { Database } from "@tursodatabase/libsql";
const db = new Database("file:database.db", {
experimental: ["views", "custom_types", "encryption", "vacuum"],
});
Go SDK
ExperimentalFeatures 필드에 쉼표로 구분된 문자열을 설정하세요:
db, err := turso.NewDatabase(turso.TursoDatabaseConfig{
Path: "database.db",
ExperimentalFeatures: "views,custom_types,vacuum",
})
Go 드라이버는 DSN 쿼리 파라미터도 지원해요:
db, err := sql.Open("turso", "database.db?experimental=views,vacuum")
Java SDK
Java 바인딩은 현재 전용 메서드로 암호화를 지원해요:
TursoDB db = TursoDB.openWithEncryption(
"database.db",
OpenFlags.CREATE,
"aegis256",
"your-hex-key-here"
);
.NET SDK
.NET 바인딩은 현재 C FFI를 통해 암호화를 지원해요:
var db = Database.OpenWithEncryption(
"database.db",
"aegis256",
"your-hex-key-here"
);
See Also
- Compatibility — 전체 기능 지원 매트릭스
더 알아보기 (Learn more)
- SQLite 호환성 — 지원 기능 매트릭스
- 커맨드라인 옵션 — 실험적 플래그 목록
- 데이터 타입 — 커스텀 타입·배열 타입 상세
- 확장(Extensions) — 로드 가능한 확장 목록