MCPcopy Index your code
hub / github.com/ChakshuGautam/stylusdb-sql

github.com/ChakshuGautam/stylusdb-sql @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
852 symbols 2,326 edges 23 files 3 documented · 0% updated 8mo ago★ 3315 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

StylusDB SQL

A SQL database engine written in JavaScript

This database is for educational purposes only. It is not intended for production use. It is written ground up in JavaScript and is a great way to learn how databases work. You can find all the code in the src directory and the tutorial in the docs directory.

Features

  • [x] Support for Prisma
  • [x] INSERT, DELETE, SELECT
  • [x] CLI
  • [x] Server/Client Basic Protocol
  • [x] NPM Package for StylusDB-SQL
  • [ ] UPDATE, CREATE TABLE, DROP TABLE
  • [ ] SQL Spec Tracker
  • [ ] Minimal PostgreSQL Protocol for Server/Client Communication

Installation

npm i stylusdb-sql

Usage

Client

For usage with the client, see documentation here.

With Prisma Client

For usage with Prisma Client, see documentation here.

SELECT

Assuming you have a CSV file called student.csv with the following data:

id,name,age
1,John,25
2,Jane,25
const { executeSELECTQuery } = require('stylusdb-sql');
const query = 'SELECT id, name FROM student WHERE age = 25';
const result = await executeSELECTQuery(query);

// result = [{ id: '1', name: 'John' }, { id: '2', name: 'Jane' }]

INSERT

const { executeINSERTQuery } = require('../src/queryExecuter');
const { readCSV, writeCSV } = require('../src/csvStorage');
async function createGradesCSV() {
    const initialData = [
        { student_id: '1', course: 'Mathematics', grade: 'A' },
        { student_id: '2', course: 'Chemistry', grade: 'B' },
        { student_id: '3', course: 'Mathematics', grade: 'C' }
    ];
    await writeCSV('grades.csv', initialData);
}
await createGradesCSV();
const insertQuery = "INSERT INTO grades (student_id, course, grade) VALUES ('4', 'Physics', 'A')";
await executeINSERTQuery(insertQuery);

Verify the new entry in grades.csv:

student_id,course,grade
1,Mathematics,A
2,Chemistry,B
3,Mathematics,C
4,Physics,A

DELETE

async function createCoursesCSV() {
    const initialData = [
        { course_id: '1', course_name: 'Mathematics', instructor: 'Dr. Smith' },
        { course_id: '2', course_name: 'Chemistry', instructor: 'Dr. Jones' },
        { course_id: '3', course_name: 'Physics', instructor: 'Dr. Taylor' }
    ];
    await writeCSV('courses.csv', initialData);
}
 await createCoursesCSV();

// Execute DELETE statement
const deleteQuery = "DELETE FROM courses WHERE course_id = '2'";
await executeDELETEQuery(deleteQuery);

// Verify the course was removed
const updatedData = await readCSV('courses.csv');
const deletedCourse = updatedData.find(course => course.course_id === '2');

CLI Usage

Open a terminal and run the following command to start the CLI:

stylusdb-sql

Execute a query as shown below.

Contributing

See CONTRIBUTING.md

Core symbols most depended-on inside this repo

i
called by 275
web/www/xterm.js
register
called by 220
web/www/xterm.js
r
called by 133
web/www/xterm.js
push
called by 98
web/www/xterm.js
fire
called by 93
web/www/xterm.js
get
called by 74
web/www/xterm.js
addMany
called by 62
web/www/xterm.js
executeSELECTQuery
called by 58
src/queryExecuter.js

Shape

Method 753
Function 53
Class 46

Languages

TypeScript100%

Modules by API surface

web/www/xterm.js764 symbols
prisma/prisma-adapter/src/index.ts20 symbols
src/queryExecuter.js11 symbols
src/queryParser.js9 symbols
example/prisma/index.js9 symbols
example/socket/client.js8 symbols
example/prisma/client.js8 symbols
src/server.js6 symbols
web/www/frontend.js4 symbols
prisma/prisma-adapter/src/queryUtils.ts4 symbols
tests/insertExecuter.test.js3 symbols
src/csvStorage.js3 symbols

For agents

$ claude mcp add stylusdb-sql \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact