Turso + Rocket
Rocket 프로젝트에도 몇 분이면 Turso를 붙일 수 있어요. 이 가이드는 자격 증명 준비부터 libsql 크레이트 추가, 그리고 Rocket 핸들러에서 Turso 데이터베이스를 쿼리하는 방법까지 안내해요.
출처: 문서
본문
시작 전 준비물
시작하기 전에 다음을 확인해 주세요.
- Turso CLI 설치
- Turso 가입 또는 로그인
- Rocket 앱 준비 — 자세히 알아보기
단계별 진행
1. 데이터베이스 자격 증명 가져오기
계속하려면 기존 데이터베이스가 필요해요. 없다면 먼저 데이터베이스를 만들어 주세요. 데이터베이스 URL과 인증 토큰을 확보한 뒤에는 환경 변수로 저장해 두는 편이 좋아요.
2. 프로젝트에 libsql 크레이트 추가하기
cargo add libsql
참고: 선택 사항으로,
.env파일을 다룰 때 도움이 되는dotenvy같은 패키지를 추가할 수도 있어요.cargo add dotenvy
3. SQL 실행하기
#[get("/todos")]
async fn get_todos() -> Json<Vec<Todo>> {
dotenv().expect(".env file not found");
let url = env::var("TURSO_DATABASE_URL").expect("TURSO_DATABASE_URL not found!");
let token = env::var("TURSO_AUTH_TOKEN").expect("TURSO_AUTH_TOKEN not found!");
let db = Database::open_remote(url, token).unwrap();
let conn = db.connect().unwrap();
let mut response = conn.query("select * from todos", ()).await.unwrap();
let mut todos: Vec<Todo> = Vec::new();
while let Some(row) = response.next().unwrap() {
let todo: Todo = Todo {
task: row.get(0).unwrap(),
};
todos.push(todo);
}
Json(todos)
}
#[launch]
fn rocket() -> _ {
dotenv().ok();
rocket::build().mount("/", routes![get_todos])
}
예제 (Examples)
- Turso + Rocket Todo List — github.com/tursodatabase/examples에서 전체 소스 코드를 볼 수 있어요.
더 알아보기 (Learn more)
- Rust 퀵스타트 — Rust용 libSQL 클라이언트 기본 사용법
- Axum 연동 가이드 — Axum 프레임워크에서 Turso 쓰기
- Actix 연동 가이드 — Actix 웹 프레임워크에서 Turso 쓰기
- Tauri 연동 가이드 — 데스크톱 앱 Tauri에서 Turso 쓰기