VillageSQL is a drop-in replacement for MySQL with extensions.
All examples on this page work on VillageSQL. Install Now →
villagesql 크레이트를 사용하여 Rust로 작성할 수 있습니다. SDK가 모든 FFI 마셜링을 처리하므로 — 여러분은 평범한 Rust를 작성하고, extension! 매크로가 서버가 로드 시점에 호출하는 C 진입점을 생성합니다.
Rust를 선택해야 하는 경우
다음과 같은 경우 Rust가 올바른 선택입니다:- Rust를 선호하고 C++ 코드베이스가 필요하지 않을 때
- 가비지 컬렉터 없이 메모리 안전성을 원할 때
- 새 확장을 만들고 있고 기존 C++ 의존성이 없을 때
사전 요구 사항
다음이 필요합니다:- Rust 안정 툴체인 — rustup.rs에서 설치
- cargo-vsql — 패키징, 설치, 테스트를 위한 Cargo 하위 명령
cargo-vsql을 설치하세요:
새 크레이트 설정하기
라이브러리 크레이트를 만들고, SDK를 추가하고, 설정하세요:Cargo.toml에서 크레이트 타입을 설정하세요:
Cargo.toml 옆에 manifest.json을 추가하세요:
함수 작성하기
Rust로 확장 만들기 페이지에 ROT-13 예제를 사용한 전체 안내가 있습니다. 짧게 요약하면:fn(&[InValue]) -> VdfReturn을 구현하고, func!로 등록하고, 모든 것을 extension!으로 감쌉니다:
확장 테스트하기
mysql-test/t/basic.test에 테스트를 작성하세요:
[ pass ]를 출력합니다.
SQL에서 설치하기
패키징하고 설치하세요:함께 보기
- Rust로 확장 만들기 — ROT-13 예제, 패키징, 테스트 세부 사항을 담은 전체 안내
- Rust에서의 사용자 정의 타입 — 바이너리 저장과 정렬을 갖춘 새 열 타입 정의
- Rust API 참조 — InValue, VdfReturn, 모든 매크로
- C++ 확장 작성하기 — 같은 작업을 위한 C++ 경로