🇿🇼 HomweDB is a database query language that uses Shona language constructs. It provides an intuitive way to interact with databases using familiar Shona terms, making database operations more accessible to Shona speakers.
# Homwe Database Language
## 🌍 Overview
**Homwe** is a database query language that uses Shona language constructs. It provides an intuitive way to interact with databases using familiar Shona terms, making database operations more accessible to Shona speakers.
## TRY IT HERE:
homwe-db.pages.dev
### ✨ Features
- 📝 **Shona-based syntax** - Use natural Shona language constructs for database operations
- 🎨 **Web-based editor** - Full-featured Monaco editor with syntax highlighting
- 🔍 **Real-time execution** - See query results instantly
- 📊 **Table visualization** - Clean, formatted output for query results
- 🛠️ **CRUD operations** - Complete Create, Read, Update, Delete functionality
- 🧪 **Comprehensive testing** - Full test suite using Vitest
## 🚀 Quick Start
### Prerequisites
- Node.js (v16 or higher)
- npm or yarn
### Installation
```bash
# Clone the repository
git clone
github.com
cd homwe
# Install dependencies
npm install
# Build the grammar
npm run build
# Run tests
npm test
# Start the web editor
npm run dev
```
## 📖 Language Guide
### Creating a Collection
```homwe
mu homwe mune users
```
### Defining Columns
```homwe
// You can use any of these variants:
users vane name, age, email
users dzine employeeId, department
```
### Inserting Data
```homwe
isa ("John", 25, "john@email.com") mu users
isa ("Jane", 30, "jane@email.com") mu users
```
### Selecting Data
```homwe
// Select all columns
zvese kubva mu users
// Select specific columns
(name, age) kubva mu users
// With WHERE clause
zvese kubva mu users ane age = 25
zvese kubva mu users vane name = "John"
// With LIMIT
zvese kubva mu users 5
```
### Updating Data
```homwe
chinja age kuita 26 ane name = "John"
chinja email kuita "newemail@test.com" vane age = 30
```
### Deleting Data
```homwe
bvisa users ane age = 25
bvisa users vane name = "John"
```
## 🔧 Development
### Building the Grammar
After modifying `Homwe.g4`: …