[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-77942":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":7,"homepage":8,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":24,"topics":25,"createdAt":9,"pushedAt":9,"updatedAt":26,"readmeContent":27,"aiSummary":28,"trendingCount":15,"starSnapshotCount":15,"syncStatus":29,"lastSyncTime":30,"discoverSource":31},77942,"extenddb","ExtendDB\u002Fextenddb","ExtendDB","https:\u002F\u002Fextenddb.org\u002F",null,"Rust",413,31,4,12,0,5,16,290,15,4.52,"Apache License 2.0",false,"main",true,[],"2026-06-12 02:03:45","# ExtendDB\n\n> **ExtendDB is an independent open source project managed by Amazon Web Services. It is not Amazon DynamoDB and does not contain any DynamoDB source code.** \"DynamoDB\" is a trademark of Amazon.com, Inc. ExtendDB is a clean-room implementation that speaks the DynamoDB wire protocol. Behavioral differences from the real service are documented in [Differences from DynamoDB](docs\u002Fdifferences-from-dynamodb.md).\n\nA DynamoDB-compatible API adapter, ExtendDB speaks the DynamoDB wire protocol — any AWS SDK, CLI, or tool that works with DynamoDB works with ExtendDB, unchanged.\n\n## Use Cases\n\n- **Local development** — run DynamoDB workloads on your laptop with zero cloud dependency\n- **CI\u002FCD pipelines** — deterministic integration tests against a DynamoDB-compatible backend\n- **Self-hosted deployments** — run DynamoDB workloads on your own infrastructure (on-premises, private cloud, edge)\n- **Multi-cloud** — use DynamoDB semantics on any cloud that runs PostgreSQL\n- **Air-gapped environments** — DynamoDB functionality with no internet connectivity\n\n## Features\n\n- Full DynamoDB wire protocol: CRUD, Query, Scan, Batch, Transactions, Streams, TTL, Import\u002FExport\n- SigV4 authentication with local IAM: users, groups, roles, policies, permissions boundaries\n- Web management console for account and credential administration\n- TLS with automatic self-signed certificate generation (replaceable with CA-signed certs)\n- CSRF protection, security headers, session management\n- Prometheus-compatible metrics endpoint\n- Daemon mode with syslog logging\n- PostgreSQL storage — use standard backup, replication, and HA tools\n\n## Quick Start\n\n```bash\n# Build\ncargo build --release\n\n# Initialize (creates databases, admin credentials, TLS cert, config file)\n.\u002Ftarget\u002Frelease\u002Fextenddb init\n\n# Start\n.\u002Ftarget\u002Frelease\u002Fextenddb serve --config extenddb.toml\n\n# Use with any AWS SDK (TLS with self-signed cert — trust via AWS_CA_BUNDLE)\nexport AWS_CA_BUNDLE=~\u002F.extenddb\u002Ftls\u002Fcert.pem\naws dynamodb list-tables --endpoint-url https:\u002F\u002F127.0.0.1:8000 --region us-east-1\n```\n\nSee [Getting Started](docs\u002Fgetting-started.md) for the full walkthrough, or use the platform installer scripts:\n\n```bash\nscripts\u002Finstall-linux.sh   # Linux\nscripts\u002Finstall-macos.sh   # macOS\n```\n\n## Prerequisites\n\n- Rust 1.85+ (`rustup update`)\n- PostgreSQL 14+ (see `docs\u002Flocal-postgres-setup.md`)\n- Python 3.10+ (for test suites and documentation)\n\n### Python Environment\n\n```bash\npython3 -m venv ~\u002Fvenvs\u002Fextenddb-venv\nsource ~\u002Fvenvs\u002Fextenddb-venv\u002Fbin\u002Factivate\npip install -r requirements.txt\n```\n\n## Authentication Modes\n\nExtendDB ships with builtin IAM-like authentication enabled by default. All requests must be signed with valid SigV4 credentials created via the management API.\n\n| Mode | Config | Description |\n|------|--------|-------------|\n| Builtin IAM-like | `auth.provider = \"builtin\"` | Full SigV4 signature verification with local credential store and IAM policy evaluation. This is the default and only supported mode. |\n\n## Configuration\n\n`extenddb init` generates `extenddb.toml` automatically. See `extenddb.sample.toml` for all keys, defaults, and descriptions.\n\nEnvironment variable overrides use the `EXTENDDB__` prefix:\n\n```bash\nexport EXTENDDB__SERVER__PORT=9000\nexport EXTENDDB__AUTH__PROVIDER=builtin\n```\n\nRuntime settings (no restart required):\n\n```bash\nextenddb settings --config extenddb.toml set log_level debug\n```\n\n## TLS\n\nTLS is mandatory. `extenddb init` generates a self-signed certificate at `~\u002F.extenddb\u002Ftls\u002Fcert.pem`. The server refuses to start with TLS disabled.\n\nTo use the self-signed cert with AWS CLI and SDKs, set `AWS_CA_BUNDLE`:\n\n```bash\nexport AWS_CA_BUNDLE=~\u002F.extenddb\u002Ftls\u002Fcert.pem\n```\n\nReplace with a CA-signed certificate for production:\n\n```toml\n[server.tls]\ncert_path = \"\u002Fetc\u002Fextenddb\u002Ftls\u002Fcert.pem\"\nkey_path = \"\u002Fetc\u002Fextenddb\u002Ftls\u002Fkey.pem\"\n```\n\n## Monitoring\n\n```bash\n# Health check\ncurl --cacert ~\u002F.extenddb\u002Ftls\u002Fcert.pem https:\u002F\u002F127.0.0.1:8000\u002Fhealth\n\n# Prometheus metrics\ncurl --cacert ~\u002F.extenddb\u002Ftls\u002Fcert.pem https:\u002F\u002F127.0.0.1:8000\u002Fmetrics\n\n# Syslog (Linux)\njournalctl -t extenddb -f\n\n# Syslog (macOS)\nlog stream --predicate 'processImagePath ENDSWITH \"extenddb\"' --level info\n```\n\n## Management Console\n\nWeb-based administration at `https:\u002F\u002F127.0.0.1:8000\u002Fconsole\u002F`. Manage accounts, users, groups, roles, policies, and access keys through a browser. Accept the self-signed certificate warning on first visit.\n\n## CLI Reference\n\n```\nextenddb serve --config extenddb.toml          # Start server (daemon)\nextenddb init --catalog-db NAME            # Initialize deployment\nextenddb stop --config extenddb.toml           # Graceful shutdown\nextenddb status --config extenddb.toml         # Check if running\nextenddb verify --config extenddb.toml         # Validate deployment\nextenddb migrate --config extenddb.toml        # Apply schema migrations\nextenddb destroy --config extenddb.toml        # Tear down deployment\nextenddb settings --config extenddb.toml list  # List runtime settings\nextenddb manage --user admin --password \u003Cpw> \u003Csubcommand>  # IAM management\n```\n\nSee [Admin Guide](docs\u002Fmanuals\u002F05-admin-guide.md) for the full CLI and management API reference.\n\n## Supported Operations\n\n### Table Operations\nCreateTable, DeleteTable, DescribeTable, ListTables, UpdateTable, DescribeEndpoints, DescribeLimits\n\n### Item Operations\nPutItem, GetItem, DeleteItem, UpdateItem (SET, REMOVE, ADD, DELETE actions; condition expressions; all ReturnValues modes)\n\n### Query & Scan\nQuery, Scan (key conditions, filters, projections, pagination, index selection)\n\n### Batch & Transactions\nBatchGetItem (100 keys), BatchWriteItem (25 ops), TransactGetItems (100 items), TransactWriteItems (100 ops)\n\n### Streams\nListStreams, DescribeStream, GetShardIterator, GetRecords\n\n### Other\nUpdateTimeToLive, DescribeTimeToLive, TagResource, UntagResource, ListTagsOfResource, ImportTable, ExportTableToPointInTime\n\n## Project Structure\n\n```\ncrates\u002F\n  core\u002F             — types, validation, expressions (pure sync Rust, no async)\n  engine\u002F           — operation handlers\n  storage\u002F          — storage trait definitions\n  storage-postgres\u002F — PostgreSQL backend\n  auth\u002F             — SigV4 verification, IAM policy engine\n  server\u002F           — HTTP server, management API, web console\n  bin\u002F              — CLI, config, daemon lifecycle\ndocs\u002F\n  design\u002F           — architecture and design documents\n  manuals\u002F          — user-facing guides (PDF pipeline)\n  adr\u002F              — architecture decision records\n```\n\n## Documentation\n\n| Document | Description |\n|----------|-------------|\n| [Getting Started](docs\u002Fgetting-started.md) | Full setup walkthrough |\n| [Architecture Guide](docs\u002Fmanuals\u002F01-architecture-guide.md) | System design and crate structure |\n| [Admin Guide](docs\u002Fmanuals\u002F05-admin-guide.md) | Server lifecycle, configuration, IAM management |\n| [Security Model](docs\u002Fmanuals\u002F10-security-model.md) | Threat model, authentication, authorization |\n| [Deployment Guide](docs\u002Fmanuals\u002F11-deployment-guide.md) | Self-hosted, multi-cloud, air-gapped deployments |\n| [Differences from DynamoDB](docs\u002Fdifferences-from-dynamodb.md) | Behavioral differences and unsupported operations |\n| [Troubleshooting](docs\u002Ftroubleshooting.md) | Common errors and solutions |\n\nBuild PDFs:\n\n```bash\npython3 docs\u002Fbuild-docs.py\n```\n\n## License\n\nCopyright 2026 ExtendDB contributors. Licensed under the Apache License, Version 2.0.\nSee [LICENSE](LICENSE) for the full text.\n\nThis software is provided \"as is\" without warranty of any kind. \n","ExtendDB 是一个与 Amazon DynamoDB 兼容的开源 API 适配器，支持使用任何 AWS SDK、CLI 或工具直接与其交互。项目采用 Rust 语言编写，提供完整的 DynamoDB 通信协议支持，包括 CRUD 操作、查询、扫描、批处理、事务等功能，并且内置了类似 IAM 的认证机制，支持用户、组、角色和策略管理。它适用于本地开发、CI\u002FCD 流水线测试、自托管部署、多云环境以及无网络连接的隔离环境等场景，使得开发者可以在这些环境下利用 DynamoDB 的语义特性进行工作，而无需依赖真实的 DynamoDB 服务。此外，ExtendDB 还提供了 Web 管理控制台用于账户及凭证管理，并支持通过 PostgreSQL 实现数据存储，便于使用标准的备份、复制及高可用性工具。",2,"2026-06-11 03:56:14","CREATED_QUERY"]