프로젝트 소개
SQLx는 애플리케이션 코드에서 SQL을 실행하기 위한 비동기 Rust 라이브러리입니다. 명시적으로 ORM이 아니며 Rust 쿼리 빌더 DSL을 제공하지 않습니다. 개발자는 일반 SQL 문자열을 작성합니다. 선택적 `query!` 및 `query_as!` 매크로는 빌드 시 개발 데이터베이스에 연결하여 쿼리 구문, 바인드 매개변수 및 결과 형태를 검증합니다. 이 검증을 위해 호환 가능한 스키마를 가진 `DATABASE_URL`이 필요하며, `sqlx` CLI는 오프라인 빌드를 위해 쿼리 메타데이터를 캐시할 수 있습니다.
지원되는 데이터베이스는 PostgreSQL, MySQL/MariaDB, SQLite입니다. MSSQL 지원은 버전 0.7 이전에 존재했지만 드라이버 재작성으로 인해 제거되었습니다. PostgreSQL 및 MySQL/MariaDB 드라이버는 순수 Rust로 작성되었습니다. SQLite는 libsqlite3 C 라이브러리를 사용하며, 안전하지 않은 코드는 해당 기능이 활성화된 경우 SQLite 통합에만 제한됩니다.
툴킷에는 내장 연결 풀링, 단일 연결 API, 비동기 행 스트리밍, `fetch`, `fetch_one`, `fetch_optional`, `fetch_all` 헬퍼, 매개변수 바인딩, 자동 준비된 문 캐싱, 준비되지 않은 및 배치 쿼리 실행, 네트워크 데이터베이스를 위한 TLS 지원, PostgreSQL `LISTEN`/`NOTIFY`, 저장점을 사용한 중첩 트랜잭션, 연결 URL에서 런타임에 데이터베이스 백엔드를 선택할 수 있는 `Any` 드라이버가 포함됩니다.
SQLx는 Tokio, async-std 및 Actix 호환 런타임과 함께 작동하며, Cargo 기능을 통해 native-tls 또는 rustls 백엔드 옵션을 제공합니다. 추가 기능은 `FromRow`와 같은 derive 매크로, 마이그레이션 관리 및 임베디드 마이그레이션, UUID, 날짜/시간 크레이트, JSON, 십진수 유형, IP 네트워크 유형 및 바이트 문자열에 대한 통합을 제공합니다.
Rust가 지원되는 모든 플랫폼에서 크로스 플랫폼이며 Apache License 2.0 및 MIT에 따라 이중 라이선스가 부여됩니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.