mtpdb-js
v0.3.1
Published
MTPDB client for Node.js — MySQL, PostgreSQL, and Redis (KeyValue) operations
Maintainers
Readme
mtpdb
A unified Node.js client for MTPDB — supporting MySQL-compatible SQL, Redis-compatible KeyValue, and PostgreSQL-compatible operations.
Installation
npm install mtpdbDocumentation
Full API documentation for each client type is available in the docs directory:
Quick Start
1. MySQL Database
Uses the standard MySQL Wire Protocol (port 3306).
const mtpdb = require('mtpdb');
// Create MySQL connection
const connection = mtpdb.createConnection({
host : 'localhost',
port : 3306,
user : 'root',
password : 'mtpdb_root',
database : 'my_db'
});
connection.connect();
connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {
if (error) throw error;
console.log('The solution is: ', results[0].solution);
connection.end();
});2. Redis KeyValue Database
Uses Redis-compatible commands over a high-performance HTTP API (port 8765).
const mtpdb = require('mtpdb');
async function main() {
const kv = mtpdb.createKeyValueClient({
host : 'localhost',
port : 8765,
database : 'my_kv_db'
});
await kv.connect();
await kv.set('name', 'Alice', { ex: 60 });
const name = await kv.get('name');
console.log(name); // 'Alice'
}
main().catch(console.error);3. PostgreSQL Database
Uses the standard PostgreSQL Wire Protocol (port 5432).
const mtpdb = require('mtpdb');
// Create PostgreSQL connection pool
const pgClient = mtpdb.createPostgresClient({
host : 'localhost',
port : 5432,
user : 'postgres',
password : '',
database : 'postgres'
});
pgClient.connect((err) => {
if (err) throw err;
pgClient.query('SELECT $1::text as message', ['Hello World!'], (error, results) => {
if (error) throw error;
console.log(results[0].message); // 'Hello World!'
pgClient.end();
});
});Telemetry
MTPDB includes optional, opt-in anonymous telemetry to help us understand usage patterns. It is disabled by default.
What is collected
When enabled, only the SQL command type (e.g. SELECT, INSERT) and the database name are sent. Raw queries, parameters, and results are never transmitted.
How to enable
- Set
telemetry: truein your connection config:
const connection = mtpdb.createConnection({
host: 'localhost',
user: 'root',
password: 'password',
database: 'my_db',
telemetry: true // opt-in
});- Set the
MTPDB_WEBHOOK_SECRETenvironment variable (telemetry is silently skipped if this is not set):
export MTPDB_WEBHOOK_SECRET="your-secret-here"Both conditions must be met for telemetry to activate. If either is missing, no data is sent.
License
MIT
