这个项目能做什么
Dynoxide 是一个用 Rust 实现、以 SQLite 作为存储层的 DynamoDB 模拟器。它被定位为 DynamoDB Local 在本地开发、测试和 CI 场景中的更轻量替代方案,可通过多种方式使用:作为暴露 DynamoDB 兼容 API 的独立 HTTP 服务器、作为面向编码代理的 MCP(Model Context Protocol)服务器、作为可嵌入 Rust 和 iOS 应用的库,以及编译为 WebAssembly 供浏览器使用。
安装和运行方式包括 npx(npx dynoxide --port 8000)、npm 开发依赖、Docker 镜像(ghcr.io/nubo-db/dynoxide,旨在作为 amazon/dynamodb-local 的直接替代品),以及 Homebrew、Cargo 和预构建二进制文件。任何 AWS SDK 或 DynamoDB 客户端都可以指向本地端点。--log quiet 标志可抑制 stderr 上的信息性启动和关闭消息。
README 报告了与 DynamoDB Local 和 LocalStack 的基准比较,涵盖冷启动、GetItem 延迟、PutItem 吞吐量、测试套件运行时间、下载和磁盘大小以及空闲内存。它还指出,该项目通过 Parity Suite(一个公开的 DynamoDB 一致性测试套件)持续对照真实 DynamoDB 进行验证,并发布实时排名而非固定快照;README 披露 Dynoxide 和 Parity Suite 共享同一位维护者。WebAssembly 构建单独评分,目前跳过的操作比其他目标更多。
支持的功能涵盖表、项、查询和扫描、批处理、事务、PartiQL、流、TTL 和标签,并支持 GSI 和 LSI、表达式语法,以及 DynamoDB 兼容的分页、验证和错误码。已记录的局限性包括未实现的仅云端操作(备份和时间点恢复、全局表、Kinesis 流式传输、资源策略、容量管理)、ConsistentRead 被接受但无效果(因为 SQLite 是强一致的)、流仅暴露单个分片且分页参数被忽略,以及未模拟事务争用错误。该项目明确面向本地开发、测试和 CI,而非生产使用。
文档涵盖安装、HTTP 服务器、Testcontainers 用法、MCP 服务器、DynamoDB Streams、带表过滤和匿名化的导入 CLI、WebAssembly、库嵌入和功能标志、兼容性、版本管理和发布。README 区分了 crate 版本(仅 Rust 库)和产品版本(涵盖二进制文件、npm 包、容器镜像、浏览器引擎和 GitHub Action)。Dynoxide 采用 MIT 和 Apache 2.0 双许可,是净室 Rust 实现,并承认 dynalite 对其 API 语义和验证逻辑的影响。它声明与 Amazon 无关联、未获其认可或赞助。
评论
0 人表达喜爱 · 满10人后显示 Deer Point
登录后参与讨论。