Skip to main content

NoSQL Database Abstraction

Sponsor Build Status Opensource ByJG GitHub source GitHub license GitHub release

Anydataset NoSQL standardizes the access to non-relational databases/repositories and provides a consistent interface for both NoSQL document databases and Key/Value stores. The implementation supports:

  • MongoDB (document-based)
  • AWS DynamoDB (key/value)
  • S3-Like Storage (key/value)
  • Cloudflare KV (key/value)

Anydataset is an agnostic data source abstraction layer in PHP. See more about Anydataset here.

Features

  • Access both document-based and key/value repositories with consistent interfaces
  • NoSQL document-based databases accessed through NoSqlInterface
  • Key/Value stores accessed through KeyValueInterface
  • Unified connection string format based on URIs
  • Built-in caching capabilities with PSR-16 compatibility
  • Type-safe DynamoDB attribute definitions using enums

Connection Based on URI

The connection string for databases is based on URL.

See below the current implemented drivers:

DatasourceConnection String
MongoDBmongodb://username:password@hostname:port/database
S3s3://accesskey:secretkey@region/bucket?params
Cloudflare KVkv://username:password@accountid/namespaceid
AWS DynamoDBdynamodb://accesskey:secretkey@hostname/tablename?params

Documentation

NoSQL Drivers

  • MongoDB - Document-based NoSQL database

Key/Value Drivers

  • AWS DynamoDB - Key/Value store with type-safe attribute definitions
  • AWS S3 - Object storage as Key/Value store
  • Cloudflare KV - Cloudflare Workers KV storage

Additional Features

Install

Just type:

composer require "byjg/anydataset-nosql"

Dependencies


Open source ByJG