Библиотека encrypted_spaces_sdk позволяет работать с зашифрованными пространствами данных. В статье показан пример использования Space для хранения и чтения записей. Сначала импортируются Space из SDK и трейты Serialize / Deserialize из serde. Для данных объявляется структура Project с полями id (тип Option<i64>) и name (тип String). Через Space::new(transport) открывается пространство — transport отвечает за передачу данных. Дальше из пространства получается таблица для структуры Project с именем "projects". Запись добавляется через insert — передаётся экземпляр Project, у которого id пока None, а name — "Internal Tools". Вызов execute().await завершает операцию и возвращает идентификатор строки. Чтение выполняется через select().where_gt("id", known_id).all() — выбираются все строки, у которых значение поля id больше известного порога. В результате получается коллекция new_projects. Код написан на Rust, асинхронный, с использованием await. Вся работа с данными идёт внутри зашифрованного пространства — это значит, что данные защищены сквозным шифрованием на стороне клиента. SDK скрывает детали криптографии, сериализации и транспорта, давая интерфейс, похожий на обычную базу данных. В статье пример дублируется — видимо, чтобы подчеркнуть универсальность доступа: запись может читать любое приложение в том же пространстве. Библиотека решает задачу защиты данных в многопользовательской среде без необходимости настраивать отдельные ключи для каждой таблицы. Space выступает как изолированный контейнер, а таблицы внутри него — как коллекции, с которыми работают через знакомые методы вставки и запроса.
encrypted_spaces_sdk скрывает криптографию за обычным интерфейсом БД
12.06.2026 12:22 · hackernews