Skip to content

This repo contains the code for MonkDB's TypeScript SDK/client driver πŸš€ to interact with MonkDB, a unified data platform 🌐. With this SDK, developers can seamlessly connect to MonkDB and leverage its powerful features for managing and querying data efficiently πŸ› οΈ.

License

Notifications You must be signed in to change notification settings

monkdbofficial/monkdb.ts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

57 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Official MonkDB TS/JS SDK

Version Build Tests Last Updated

Welcome to the official TypeScript SDK for MonkDB, an AI-native database designed to handle diverse data workloads seamlessly. This SDK empowers developers to interact with MonkDB using TypeScript, leveraging its robust features for modern application development.​

Note:

The @monkdb/monkdb TS/JS SDK, which is authored using modern ESM (ECMAScript Modules), fully supports both JavaScript and TypeScript environments, provided the runtime supports ESM.

βœ… @monkdb/monkdb SDK Compatibility and Usage Guide

πŸ”§ Module System:

The SDK is authored and published as an ES Module (ESM).

  • βœ… Works seamlessly in TypeScript projects.
  • βœ… Fully usable in JavaScript (ESM) projects.
  • ⚠️ Not directly compatible with legacy CommonJS (require()) environments unless transpiled or imported via dynamic import (await import()).

πŸ“¦ Package Details:

  • Package: @monkdb/monkdb
  • Version: 0.1.6 (latest as of now)
  • Module Type: ESM
  • Types: Bundled TypeScript type declarations (.d.ts)

πŸ’» Node.js Version Support

To use the SDK without any issues, make sure you're using a Node.js version that natively supports ESM and modern TypeScript features.

Node.js Version ESM Support @monkdb/monkdb SDK Compatibility
>=14.13.0 βœ… Experimental ESM support with flags or .mjs ⚠️ Works with caveats (not recommended)
>=16.0.0 βœ… Stable ESM support βœ… Fully compatible
>=18.0.0 βœ… Stable + LTS βœ… Recommended
>=20.0.0 βœ… LTS + Modern runtime features βœ… Fully supported
>=21.x.x βœ… Latest features, top-tier performance βœ… Fully supported
<=14.x β›” ESM not fully supported ❌ Not compatible
  • βœ… Recommended Node.js version: 18.x or newer
  • ⚠️ Minimum working version: 14.13.0 (with "type": "module" and/or .mjs extensions)
  • ❌ Not supported: Node <=14.x, legacy CommonJS-only environments

πŸš€ Features

  • πŸ•’ Time Series Data: Efficiently store and analyze time-series data, enabling applications to process and query time-stamped information with ease.​

  • 🧠 Vector Data Integration: Manage and query vector data, facilitating operations like similarity searches and machine learning model integrations.​

  • πŸ” Full-Text Search: Perform comprehensive text searches across your datasets, enhancing the retrieval of relevant information through advanced indexing and querying capabilities.​

  • 🌍 Geospatial Queries: Execute complex geospatial queries to handle location-based data, supporting applications that require spatial analysis and mapping functionalities.​

  • πŸ“¦ Blob Storage: Store and retrieve binary large objects (BLOBs), allowing for the management of multimedia files, documents, and other large data types within the database.​

  • πŸ“„ Document Store with SQL Interface: Combine the flexibility of a document store with the power of SQL, providing a PGWire-compatible SQL interface for structured querying of unstructured data.

  • πŸš€ Streaming SQL- Run realtime/streaming data workloads to perform petabyte scale SQL analytics (realtime).


πŸ“¦ Installation

To install the MonkDB's TypeScript SDK, use npm or yarn:

npm install @monkdb/monkdb

or

yarn add @monkdb/monkdb

πŸ§ͺ Usage

Typescript Usage Example

Here's a basic example of how to establish a connection to MonkDB and execute queries using the SDK:

// index.ts
import { MonkConnection } from '@monkdb/monkdb';

const connection = new MonkConnection({
  servers: ['http://127.0.0.1:4200'],
  username: 'your_username',
  password: 'your_password',
});

const cursor = connection.cursor();

async function runQuery() {
  await cursor.execute('SELECT * FROM your_table');
  const results = cursor.fetchall();
  console.log(results);
}

runQuery().catch(console.error).finally(() => {
  cursor.close();
  connection.close();
});

No special setup is needed beyond tsconfig.json with "module": "ES2020" or higher.

JavaScript Usage Example

Here's a basic example of how to establish a connection to MonkDB and execute queries using the SDK:

// index.js
import { MonkConnection } from '@monkdb/monkdb';

const conn = new MonkConnection({
  servers: ['http://localhost:4200'],
  username: 'monk',
  password: 'monk',
  schema: 'doc',
});

const cursor = conn.cursor();

await cursor.execute('SELECT * FROM my_table');
const rows = cursor.fetchall();

console.log(rows);

cursor.close();
conn.close();

Ensure your package.json contains:

"type": "module"

πŸ“š Documentation

Visit our tech documentation on how to execute use cases on MonkDB.


Examples

To get a feel of MonkDB using TS/JS, please follow the instructions available in this README file.


πŸ“œ License

This project is licensed under the Apache-2.0 License.


🀝 Support

For enterprise support or any inquiries, please contact us at πŸ“§ support@monkdb.com.


About

This repo contains the code for MonkDB's TypeScript SDK/client driver πŸš€ to interact with MonkDB, a unified data platform 🌐. With this SDK, developers can seamlessly connect to MonkDB and leverage its powerful features for managing and querying data efficiently πŸ› οΈ.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published