Клиентские интерфейсы
При выборе интерфейса сначала определите, где будет работать движок базы данных. ORM является прикладной абстракцией, а не третьим режимом развёртывания.
| Интерфейс | Где работает движок | Ответственность приложения |
|---|---|---|
| Встраиваемый Rust API | В процессе приложения | Открыть базу, выполнить операции и закрыть её |
| Rust TCP-клиент | В отдельном процессе сервера RadixDB | Подключиться, пройти аутентификацию, выбрать базу и прочитать результаты |
| ORM | Использует интерфейс выполнения операций БД | Описать модели или записи и выбрать границы транзакций |
Встраиваемый доступ
Заголовок раздела «Встраиваемый доступ»Локальный CLI в начале учебника показывает встраиваемый доступ: он открывает
базу в памяти или файлах без сетевого сервиса. Rust-приложения используют
публичный API базы из radixdb-api, также доступный через верхнеуровневый крейт
radixdb. Приложение управляет жизненным циклом движка и должно иметь доступ
к файлам базы.
Доступ по TCP
Заголовок раздела «Доступ по TCP»radixdb-client работает по бинарному протоколу RadixDB и не содержит движок
хранения. Используйте клиент, совместимый с протоколом сервера; не предполагайте,
что PostgreSQL-клиенты или URL подключения PostgreSQL подходят для RadixDB.
В серверном упражнении запускается готовый
клиент. Его исходник examples/public/rust-client/basic.rs показывает подключение,
аутентификацию, выбор базы, выполнение SQL, чтение курсора и закрытие соединения.
Читайте до EOF или закрывайте незавершённый курсор перед отправкой другой команды.
Путь базы локального CLI и имя базы сервера не взаимозаменяемы.
radixdb-orm предоставляет абстракции моделей и записей для прикладного кода.
Он не отменяет необходимость понимать ограничения SQL, границы транзакций
и ошибки. Выбирайте встраиваемый или серверный режим отдельно от решения
использовать ORM. Подробные контракты и исполняемые примеры находятся в главах
«Встраиваемый Rust»,
«Rust TCP-клиент» и «Rust ORM».
Границы обзора
Заголовок раздела «Границы обзора»Этот обзор не является полным контрактом API. Подробные главы определяют типы параметров, prepared statements, ошибки транзакций и неопределённый исход при потере соединения. В частности, не повторяйте запись автоматически только потому, что ответ на неё не был получен.