À propos du projet
Dynoxide est un émulateur DynamoDB implémenté en Rust avec SQLite comme couche de stockage. Il se positionne comme une alternative plus légère à DynamoDB Local pour le développement local, les tests et la CI, et peut être utilisé de plusieurs manières : comme serveur HTTP autonome exposant une API compatible DynamoDB, comme serveur MCP (Model Context Protocol) pour les agents de codage, comme bibliothèque intégrable pour les applications Rust et iOS, et compilé en WebAssembly pour une utilisation dans le navigateur.
Les options d'installation et d'exécution incluent npx (npx dynoxide --port 8000), une dépendance de développement npm, une image Docker (ghcr.io/nubo-db/dynoxide) conçue comme remplacement direct d'amazon/dynamodb-local, ainsi que Homebrew, Cargo et des binaires précompilés. N'importe quel SDK AWS ou client DynamoDB peut être pointé vers le point de terminaison local. Un indicateur --log quiet supprime les messages d'information de démarrage et d'arrêt sur stderr.
Le README rapporte des comparaisons de benchmarks face à DynamoDB Local et LocalStack couvrant le démarrage à froid, la latence GetItem, le débit PutItem, les temps d'exécution des suites de tests, la taille de téléchargement et sur disque, et la mémoire au repos. Il note également que le projet est continuellement vérifié face à DynamoDB réel par Parity Suite, une suite de conformité DynamoDB publique, avec des classements en direct publiés plutôt qu'un instantané figé ; le README indique que Dynoxide et Parity Suite partagent un mainteneur. La version WebAssembly est évaluée séparément et ignore actuellement plus d'opérations que les autres cibles.
Les fonctionnalités prises en charge couvrent les tables, les éléments, query et scan, les lots, les transactions, PartiQL, les streams, TTL et les tags, avec la prise en charge des GSI et LSI, la syntaxe des expressions, et la pagination, la validation et les codes d'erreur compatibles DynamoDB. Les limitations documentées incluent les opérations cloud-only non implémentées (sauvegardes et restauration à un instant précis, tables globales, streaming Kinesis, politiques de ressources, gestion des capacités), ConsistentRead accepté mais sans effet car SQLite est fortement cohérent, les streams exposant un seul shard avec les paramètres de pagination ignorés, et les erreurs de contention de transaction non émulées. Le projet est explicitement destiné au développement local, aux tests et à la CI plutôt qu'à un usage en production.
La documentation couvre l'installation, le serveur HTTP, l'utilisation avec Testcontainers, le serveur MCP, DynamoDB Streams, une CLI d'import avec filtrage de tables et anonymisation, WebAssembly, l'intégration en bibliothèque et les feature flags, la compatibilité, le versionnage et la publication. Le README distingue une version de crate (bibliothèque Rust uniquement) d'une version produit couvrant le binaire, les paquets npm, les images de conteneur, le moteur navigateur et la GitHub Action. Dynoxide est sous double licence MIT et Apache 2.0, est une implémentation Rust clean-room, et reconnaît dynalite comme une influence sur sa sémantique d'API et sa logique de validation. Il précise qu'il n'est ni affilié à, ni approuvé par, ni sponsorisé par Amazon.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.