본문 바로가기
WIKI 기술 지식 베이스

실험적 기능

원문 보기 위키 갱신

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

더 알아보기 (Learn more)