В этом сравнении основное внимание уделяется автономным бэкэндам на основе Rust: sh0.dev, TrailBase и Aurabase. Для более общего автономного бэкэнда, не написанного на Rust, в наших сравнениях Aurabase и PocketBase и Aurabase и Appwrite рассматриваются другие варианты. Для полного анализа того, что означает «суверенитет ЕС» с юридической точки зрения, хостинга и гражданства издателя, наша статья самостоятельный хостинг в сравнении с суверенным BaaS ЕС идет дальше; Этот пост ограничивается размещением Aurabase среди аналогов на Rust.
Самое необходимое
- На сегодняшний день три реальных варианта самостоятельного хостинга нативного бэкэнда Rust: sh0.dev (один двоичный файл, ~25 МБ), TrailBase (Rust + встроенный интерфейс SQLite + SolidJS), Aurabase (полная платформа, специализированный Postgres 16).
- Aurabase предполагает противоположный компромисс монобинарности: несколько оркестрованных сервисов (локально k3d или Kubernetes/Helm в производстве) в обмен на мультитенантный RLS, CDC в реальном времени и собственный искусственный интеллект (NL2SQL, RAG).
- Самостоятельный хостинг и суверенитет ЕС — это две разные оси: хостинг ничего не гарантирует, пока физический сервер и издательская компания сами не находятся в ЕС.
- Информация о sh0.dev и TrailBase основана на их общедоступных страницах на момент написания и не проверена тщательно: проверьте их актуальную документацию, прежде чем принимать какие-либо решения.
Почему «Rust-native» имеет значение для самостоятельного хостинга
Серверная часть с автономным размещением удаляет инфраструктуру из периметра облачного провайдера, но не несет ответственности за ее надежную работу. Именно здесь выбор языка перестает быть деталью: безопасность памяти Rust и отсутствие сборщика мусора сокращают целый класс производственных сбоев, которые сильнее всего бьют по небольшой команде, управляющей собственным сервером.
Это не чисто аргумент в пользу производительности. Службу, которая не вызывает сбоев сегментации и не имеет непредсказуемых пауз при сборе памяти, легче отслеживать команде без выделенного SRE. Фактическая архитектура ядра Aurabase, 18-ячеечного рабочего пространства Cargo, скомпилированного вместе, подробно документирована в нашем файле архитектуры Rust.
Одного «открытого исходного кода» недостаточно, чтобы гарантировать переносимость или отсутствие привязки: фактическая архитектура, одноарендная или мультитенантная, проприетарная или стандартная система хранения данных, имеет большее значение. sh0.dev, TrailBase и Aurabase предоставляют доступ к исходному коду, но с очень разными областями действия и моделями данных.
sh0.dev: уникальный двоичный файл Rust, созданный для минимализма.
sh0.dev, согласно общедоступным страницам на момент написания статьи, представляет собой бэкэнд, распространяемый в виде одного двоичного файла Rust размером около 25 МБ. Центральный аргумент — простота развертывания: файл копируется на сервер без внешних зависимостей и устанавливается отдельно.
Для этой статьи мы не рассматривали подробно точную функциональность или модель лицензирования sh0.dev: общедоступная информация по этому вопросу остается ограниченной, а проект такого типа быстро развивается. Если этот критерий имеет значение для вашего решения, перед принятием решения проверьте его обновленную официальную документацию.
TrailBase: ядро Rust, встроенный SQLite, интерфейс SolidJS.
TrailBase, как указано на общедоступных страницах, сочетает в себе серверное ядро, написанное на Rust, встроенную базу данных SQLite и интерфейс администрирования, созданный с помощью SolidJS, и все они поставляются как автономный проект. Архитектура напоминает PocketBase (Go, SQLite, интегрированный интерфейс), среда выполнения написана на Rust, а не на Go.
Как и в случае с sh0.dev, эта статья не претендует на тщательную проверку кода или дорожной карты TrailBase. Что мы можем сказать с уверенностью, так это общее архитектурное позиционирование: двоичный файл со встроенным механизмом хранения, а не серверная часть, поддерживаемая внешним Postgres.
Aurabase: специализированная Postgres 16, полноценная платформа, также размещаемая самостоятельно.
Aurabase предполагает другой компромисс, чем монобинарный. Репозиторий предоставляет локальный кластер Kubernetes (k3d), запускаемый одной командой через ./start.sh, а также полную диаграмму Helm (deploy/helm/aurabase/) с отдельными профилями значений для Hetzner, локального стенда Kubernetes (k3d) и Scaleway. Корневая рабочая область Cargo выпускается под лицензией MIT.
Этот выбор включает в себя несколько управляемых сервисов: шлюз, аутентификацию, базу данных, режим реального времени, хранилище, функции, искусственный интеллект, а не один процесс. Взамен каждый проект получает выделенный PostgreSQL 16 (а не общий файл SQLite) с pgvector 0.8.6 и pg_graphql, встроенными в образ клиента, а также изоляцию безопасности на уровне строк на уровне ядра, а не на уровне приложения.
Единственный заметный нюанс ядра Rust: режим по умолчанию для пограничных функций опирается на выделенный сервис TypeScript (изоляты V8), инженерный компромисс, подробно описанный в файле архитектуры, указанном выше, а не упущение, о котором мы предпочитаем молчать.
Три архитектуры, суммированные бок о бок
Столбцы sh0.dev и TrailBase с пометкой «для проверки» отражают неисчерпывающий поиск с нашей стороны по этим двум инструментам, а не подтвержденное отсутствие у них функциональности.
| Критерий | Аурабаза | sh0.dev | ТрейлБаза |
|---|---|---|---|
| Основной язык | Ржавчина (полное рабочее пространство, 18 ящиков) | Ржавчина (одиночный двоичный файл) | Rust (ядро) + SolidJS (интерфейс) |
| След развертывания | k3d локально или Helm/Kubernetes в производстве, несколько сервисов | Одиночный двоичный файл, ~25 МБ | Один двоичный встроенный SQLite |
| База данных | PostgreSQL 16 выделен для каждого проекта + pgvector + pg_graphql | Подлежит проверке (официальный документ) | Встроенный SQLite |
| Интерфейс администрирования | Отдельная студия Next.js | Чтобы проверить | Интерфейс SolidJS интегрирован в двоичный код |
| Собственный ИИ (NL2SQL/RAG) | Да, зарегистрирован код (аура-ай) | Чтобы проверить | Чтобы проверить |
| Официальный голос по этому сравнению | Это сравнение, опубликованное Aurabase | Нет, нежелательно | Нет, нежелательно |
Суверенитет ЕС: который не зависит от выбора бинарности
Самостоятельное размещение бэкэнда, написанного на Rust, каким бы он ни был, само по себе не гарантирует ничего в отношении суверенитета ЕС. Должны быть соблюдены два различных условия: физический сервер должен работать в Европейском Союзе, и вы должны осуществлять фактический оперативный контроль над ним. Ни sh0.dev, ни TrailBase, ни Aurabase не могут гарантировать вам второе условие: вы выбираете, где развернуть бинарник или контейнеры.
Юрисдикция издателя программного обеспечения также имеет значение, но по другой оси: юрисдикция версии, управляемой поставщиком, а не ваш собственный хостинг. Это точка зрения CLOUD Act, подробно описанная в нашей статье о выборе BaaS. Что касается самой управляемой инфраструктуры Aurabase: она работает и проверена в производстве в центрах обработки данных Hetzner в Нюрнберге и Фалькенштайне (Германия), а также в Хельсинки (Финляндия). Это суверенитет ЕС в том виде, в каком он существует сегодня, в отличие от парижской штаб-квартиры Aurabase SAS.
Подробную информацию о критериях соответствия, которые следует проверить перед выбором жилья, независимого или нет, можно найти на нашей странице соответствие.
Когда выбирать, что
Если размер развертывания является критерием номер один, минимальный VPS, периферийное устройство, проект, в котором важен каждый мегабайт, стоит попробовать sh0.dev или TrailBase. Это оправданный выбор для данного конкретного случая использования, даже если мы сами не проверяли их поведение в производстве.
Если вашему проекту требуется настоящая многопользовательская среда с расширенной безопасностью на уровне строк, полная версия Postgres вместо SQLite или собственный искусственный интеллект (NL2SQL, RAG) без сторонней сборки, Aurabase покрывает эту задачу. Это также самый прямой путь, если вы начинаете с существующего проекта Supabase: тогда Aurabase позиционируется как альтернатива Supabase, написанному на Rust, с политиками SDK и RLS, которые направлены на почти прямую совместимость, описанную в нашем руководстве по миграции .