À propos du projet
redb est un store clé-valeur embarqué simple, portable et haute performance, écrit entièrement en Rust. Il s'inspire librement de LMDB et stocke les données à l'aide de B+trees copier-modifier. La bibliothèque propose une API zéro-copie et thread-safe, inspirée de BTreeMap, prend en charge des transactions pleinement conformes aux propriétés ACID, et offre le MVCC afin de permettre aux lecteurs et aux écrivains de fonctionner simultanément sans blocage. Il est sécuritaire en cas de crash par défaut et inclut des fonctionnalités telles que les points de sauvegarde et les annulations.
redb peut être compilé sans la bibliothèque standard (no_std) lors de l'utilisation de la fonctionnalité expérimentale api-5, ne nécessitant que alloc et le support des comparaisons-et-changements atomiques — adapté aux cibles Cortex-M3+. Le stockage doit être fourni via une implémentation personnalisée de StorageBackend.
Les benchmarks montrent que redb offre des performances compétitives par rapport à d'autres bases de données embarquées de premier plan comme LMDB, RocksDB, Fjall et SQLite sur les chargements massifs, les écritures, les lectures et les suppressions. Il évolue bien sous des charges de travail multi-threads et conserve des tailles de stockage compactes.
Le format de fichier est stable, et les futures modifications viseront à préserver la compatibilité ascendante. Le développement nécessite just et podman, avec des artifacts de build mis en cache dans un volume Podman.
Sous licence Apache 2.0 ou MIT au choix de l'utilisateur. Les contributions sont doublement licenciées sauf indication contraire.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.