{"id":37289769,"url":"https://github.com/objectstack-ai/objectql","last_synced_at":"2026-02-16T07:18:41.025Z","repository":{"id":331928524,"uuid":"1131455451","full_name":"objectstack-ai/objectql","owner":"objectstack-ai","description":"The Universal Data Protocol. A high-performance engine that virtualizes SQL, NoSQL (Redis), and Files (Excel) into a unified API. Write once, query anywhere.","archived":false,"fork":false,"pushed_at":"2026-02-08T01:12:12.000Z","size":7390,"stargazers_count":3,"open_issues_count":3,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-08T01:52:41.164Z","etag":null,"topics":["database","json-schema","orm","protocol","typescript","universal"],"latest_commit_sha":null,"homepage":"https://www.objectql.org","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/objectstack-ai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-10T03:40:45.000Z","updated_at":"2026-02-08T01:09:57.000Z","dependencies_parsed_at":"2026-02-01T16:01:00.746Z","dependency_job_id":null,"html_url":"https://github.com/objectstack-ai/objectql","commit_stats":null,"previous_names":["objectql/objectql","objectstack-ai/objectql"],"tags_count":345,"template":false,"template_full_name":null,"purl":"pkg:github/objectstack-ai/objectql","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/objectstack-ai%2Fobjectql","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/objectstack-ai%2Fobjectql/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/objectstack-ai%2Fobjectql/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/objectstack-ai%2Fobjectql/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/objectstack-ai","download_url":"https://codeload.github.com/objectstack-ai/objectql/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/objectstack-ai%2Fobjectql/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29407003,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-13T06:24:03.484Z","status":"ssl_error","status_checked_at":"2026-02-13T06:23:12.830Z","response_time":78,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","json-schema","orm","protocol","typescript","universal"],"created_at":"2026-01-16T02:28:27.677Z","updated_at":"2026-02-16T07:18:41.018Z","avatar_url":"https://github.com/objectstack-ai.png","language":"TypeScript","readme":"# ObjectQL\n\n  **The Standard Protocol for AI Software Generation.**\n  \n  Define your data in JSON/YAML. Run anywhere: Node.js, Browser, Edge. Empower LLMs to build hallucination-free backends.\n\n  [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n  [![TypeScript](https://img.shields.io/badge/written%20in-TypeScript-3178C6.svg)](https://www.typescriptlang.org/)\n  [![NPM](https://img.shields.io/npm/v/@objectql/core.svg)](https://www.npmjs.com/package/@objectql/core)\n\n\n---\n\n## 🌐 Introduction\n\n**ObjectQL** is a universal data protocol and ORM engine designed for the **AI Coding Era**. \n\nTraditional ORMs (TypeORM, Prisma) are built for humans writing code in IDEs. ObjectQL is built for **LLMs generating logic**. It uses rigid, declarative **JSON/YAML Metadata** and a strict JSON-AST Query Protocol to ensure AI Agents generate perfect, hallucination-free database operations.\n\n**Why ObjectQL?**\n* **🤖 AI-Native:** Metadata-driven architecture provides the perfect context window for LLMs. No more parsing complex TypeScript classes or guessing SQL syntax.\n* **🛡️ Hallucination-Proof:** The strict JSON protocol eliminates \"imaginary methods\" or invalid SQL syntax often generated by AI.\n* **🌍 Universal Runtime:** The core engine has **zero dependencies** on Node.js native modules. It runs in Browsers, Cloudflare Workers, and Deno.\n* **🔌 Driver Agnostic:** Switch between PostgreSQL, MongoDB, SQLite, or even a Remote API without changing your business logic.\n\n\n---\n\n## 📦 Architecture\n\nObjectQL is organized as a Monorepo to ensure modularity and universal compatibility.\n\n### Foundation Layer\n\n| Package | Environment | Description |\n| :--- | :--- | :--- |\n| **[`@objectql/types`](./packages/foundation/types)** | Universal | **The Contract.** Pure TypeScript interfaces defining the protocol. |\n| **[`@objectql/core`](./packages/foundation/core)** | Universal | **The Engine.** Plugin orchestrator, repository pattern, and kernel factory. Delegates query and optimization logic to dedicated plugins. |\n| **[`@objectql/plugin-query`](./packages/foundation/plugin-query)** | Universal | **Query Plugin.** QueryService, QueryBuilder, QueryAnalyzer, and FilterTranslator. |\n| **[`@objectql/plugin-optimizations`](./packages/foundation/plugin-optimizations)** | Universal | **Optimizations Plugin.** Connection pooling, query compilation, compiled hooks, lazy metadata loading, and SQL query optimization. |\n| **[`@objectql/plugin-security`](./packages/foundation/plugin-security)**| Universal | **Security Plugin.** Comprehensive RBAC, Field-Level Security (FLS), and Row-Level Security (RLS) with AST-level enforcement. |\n| **[`@objectql/plugin-validator`](./packages/foundation/plugin-validator)**| Universal | **Validation Plugin.** 5-type validation engine: field, cross-field, state machine, unique, and business rule. |\n| **[`@objectql/plugin-formula`](./packages/foundation/plugin-formula)**| Universal | **Formula Plugin.** Computed fields with JavaScript expressions in a sandboxed evaluator. |\n| **[`@objectql/plugin-workflow`](./packages/foundation/plugin-workflow)**| Universal | **Workflow Plugin.** State machine executor with guards, actions, and compound states. |\n| **[`@objectql/plugin-multitenancy`](./packages/foundation/plugin-multitenancy)**| Universal | **Multi-Tenancy Plugin.** Automatic tenant isolation via hook-based filter rewriting. |\n| **[`@objectql/plugin-sync`](./packages/foundation/plugin-sync)**| Universal | **Sync Plugin.** Offline-first sync engine with conflict resolution strategies. |\n| **[`@objectql/edge-adapter`](./packages/foundation/edge-adapter)**| Universal | **Edge Adapter.** Runtime detection and capability validation for edge environments. |\n| **[`@objectql/platform-node`](./packages/foundation/platform-node)**| Node.js | Node.js platform utilities for file system integration, YAML loading, and plugin management. |\n\n### Driver Layer\n\n| Package | Environment | Description |\n| :--- | :--- | :--- |\n| **[`@objectql/driver-sql`](./packages/drivers/sql)** | Node.js | SQL database driver (PostgreSQL, MySQL, SQLite, SQL Server) via Knex. |\n| **[`@objectql/driver-mongo`](./packages/drivers/mongo)** | Node.js | MongoDB driver with native aggregation pipeline support. |\n| **[`@objectql/driver-memory`](./packages/drivers/memory)** | Universal | **In-Memory Driver.** Zero dependencies, perfect for testing and browser apps. |\n| **[`@objectql/driver-fs`](./packages/drivers/fs)** | Node.js | File system driver with JSON file-based persistent storage. |\n| **[`@objectql/driver-excel`](./packages/drivers/excel)** | Node.js | Excel file driver for using `.xlsx` spreadsheets as a data source. |\n| **[`@objectql/driver-redis`](./packages/drivers/redis)** | Node.js | Redis driver (example/template implementation for key-value stores). |\n| **[`@objectql/sdk`](./packages/drivers/sdk)** | Universal | **Remote HTTP Driver.** Type-safe client for connecting to ObjectQL servers. |\n| **[`@objectql/driver-sqlite-wasm`](./packages/drivers/sqlite-wasm)** | Browser | **SQLite WASM Driver.** Browser-native SQL via WebAssembly + OPFS persistence. |\n| **[`@objectql/driver-pg-wasm`](./packages/drivers/pg-wasm)** | Browser | **PostgreSQL WASM Driver.** Full PG feature set in the browser via PGlite. |\n\n### Tools Layer\n\n| Package | Environment | Description |\n| :--- | :--- | :--- |\n| **[`@objectql/cli`](./packages/tools/cli)** | Node.js | Command-line interface with AI-powered generation, dev server, and project management. |\n| **[`@objectql/create`](./packages/tools/create)** | Node.js | Project scaffolding tool (`npm create @objectql@latest`). |\n| **[`vscode-objectql`](./packages/tools/vscode-objectql)** | VS Code | Official VS Code extension with IntelliSense, validation, and snippets. |\n\n---\n\n## ⚡ Quick Start\n\n### 1. Create a New Project\n\nThe fastest way to start is using the CLI to scaffold a new project.\n\n```bash\n# Generate a new project\nnpm create @objectql@latest my-app\n\n# Choose 'starter' for a complete example or 'hello-world' for minimal setup\n```\n\n### 2. Install VS Code Extension (Critical 🚨)\n\nFor the best experience, install the official extension. It provides **Intelligent IntelliSense** and **Real-time Validation** for your YAML models.\n\n*   Search for **\"ObjectQL\"** in the VS Code Marketplace.\n*   Or open your new project, and VS Code will recommend it automatically via `.vscode/extensions.json`.\n\n### 3. Define Metadata (The \"Object\")\n\nObjectQL uses **YAML** as the source of truth. Create a file `src/objects/story.object.yml`:\n\n**Key Convention (v4.0+):** The object `name` is **inferred from the filename** - no redundant `name:` field needed!\n\n```yaml\n# File: story.object.yml\n# Object name is automatically inferred as 'story' ✅\nlabel: User Story\nfields:\n  title:\n    type: text\n    required: true\n    label: Story Title\n  status:\n    type: select\n    options:\n      - label: Draft\n        value: draft\n      - label: Active\n        value: active\n      - label: Done\n        value: done\n    defaultValue: draft\n  points:\n    type: number\n    scale: 0\n    defaultValue: 1\n    label: Story Points\n```\n\n### 4. Run \u0026 Play\n\nStart the development server. ObjectQL will automatically load your YAML files and generate the database schema.\n\n```bash\nnpm run dev\n```\n\n\n---\n\n## 🔌 The Driver Ecosystem\n\nObjectQL isolates the \"What\" (Query) from the \"How\" (Execution).\n\n### Official Drivers\n\n#### SQL Driver (`@objectql/driver-sql`)\n\n* Supports PostgreSQL, MySQL, SQLite, SQL Server.\n* **Smart Hybrid Mode:** Automatically maps defined fields to SQL columns and undefined fields to a `_jsonb` column. This gives you the speed of SQL with the flexibility of NoSQL.\n\n#### Mongo Driver (`@objectql/driver-mongo`)\n\n* Native translation to Aggregation Pipelines.\n* High performance for massive datasets.\n\n#### SDK / Remote Driver (`@objectql/sdk`)\n\n* **The Magic:** You can run ObjectQL in the **Browser**.\n* Instead of connecting to a DB, it connects to an ObjectQL Server API.\n* The API usage remains exactly the same (`repo.find(...)`), but it runs over HTTP.\n\n#### Memory Driver (`@objectql/driver-memory`)\n\n* **Zero dependencies** - Pure JavaScript implementation\n* **Universal** - Works in Node.js, Browser, Edge environments\n* Perfect for testing, prototyping, and client-side state management\n* See [Browser Demo](./examples/browser-demo/) for live examples\n\n#### SQLite WASM Driver (`@objectql/driver-sqlite-wasm`)\n\n* **Browser-native SQL** via WebAssembly (~300KB gzip)\n* **OPFS persistence** — GB-scale storage, data survives page refreshes\n* Reuses the Knex SQLite dialect — same query compilation as `driver-sql`\n* Perfect for offline-first apps and PWAs\n\n#### PostgreSQL WASM Driver (`@objectql/driver-pg-wasm`)\n\n* **Full PostgreSQL in the browser** via PGlite (~3MB gzip)\n* JSONB, full-text search, arrays, range types\n* IndexedDB/OPFS persistence\n* For apps that need PG-specific features client-side\n\n### Browser Support 🌐\n\nObjectQL runs **natively in web browsers** with zero backend required! This makes it perfect for:\n\n- 🚀 **Rapid Prototyping** - Build UIs without server setup\n- 📱 **Offline-First Apps** - PWAs with client-side data via WASM SQL drivers\n- 🎓 **Educational Tools** - Interactive learning experiences\n- 🧪 **Testing** - Browser-based test environments\n\n**Try it now:** Check out the [Browser Example](./examples/integrations/browser/)!\n\n```javascript\n// Running ObjectQL in the browser - it's that simple!\nimport { ObjectQL } from '@objectql/core';\nimport { MemoryDriver } from '@objectql/driver-memory';\n\nconst driver = new MemoryDriver();\nconst app = new ObjectQL({ datasources: { default: driver } });\n\n// Define object following latest ObjectStack specification\napp.registerObject({\n  name: 'tasks',  // Required for programmatic registration\n  label: 'Tasks',\n  fields: {\n    title: { \n      type: 'text', \n      required: true,\n      label: 'Task Title'\n    },\n    completed: { \n      type: 'boolean', \n      defaultValue: false,\n      label: 'Completed'\n    }\n  }\n});\n\nawait app.init();\n\n// Use it just like on the server!\nconst ctx = app.createContext({ isSystem: true });\nconst tasks = ctx.object('tasks');\nawait tasks.create({ title: 'Build awesome app!' });\n```\n\n### Extensibility\n\nObjectQL's driver architecture supports custom database implementations. Potential databases include:\n\n* **Key-Value Stores:** Redis, Memcached, etcd\n* **Search Engines:** Elasticsearch, OpenSearch, Algolia\n* **Graph Databases:** Neo4j, ArangoDB\n* **Time-Series:** InfluxDB, TimescaleDB\n* **Cloud Databases:** DynamoDB, Firestore, Cosmos DB\n\n**Want to add support for your database?** Check out:\n* [Driver Extensibility Guide](./docs/guide/drivers/extensibility.md) - Lists potential databases and their implementation complexity\n* [Implementing Custom Drivers](./docs/guide/drivers/implementing-custom-driver.md) - Step-by-step guide with code examples\n* [Redis Driver Example](./packages/drivers/redis/) - Reference implementation\n\n---\n\n## 🔍 Query Approaches\n\nObjectQL supports three distinct query interfaces, each optimized for different scenarios:\n\n* **JSON-DSL (Core):** AI-friendly protocol, server-side logic, cross-driver compatibility\n* **REST API:** Simple CRUD operations, mobile apps, third-party integrations  \n* **GraphQL:** Complex data graphs, modern SPAs, efficient multi-table fetching\n\n**Looking for best practices?** Check out the [Query Best Practices Guide](./docs/guide/query-best-practices.md) for detailed comparisons, performance strategies, and optimization techniques.\n\n---\n\n## 🛠️ Developer Tools\n\n### VSCode Extension\n\nEnhance your ObjectQL development experience with our official VSCode extension.\n\n**Features:**\n- 🎯 Intelligent IntelliSense for `.object.yml`, `.validation.yml`, `.permission.yml`, `.app.yml`\n- ✅ Real-time JSON Schema validation with inline errors\n- 📝 30+ code snippets for objects, fields, validations, hooks, and actions\n- ⚡ Quick commands to create new ObjectQL files from templates\n- 🎨 Custom file icons and syntax highlighting\n- 🔍 Context-aware auto-completion\n\n**Installation:**\n```bash\ncd packages/tools/vscode-objectql\nnpm install\nnpm run compile\nnpm run package\n# Then install the generated .vsix file in VS Code\n```\n\nSee [`packages/tools/vscode-objectql/README.md`](./packages/tools/vscode-objectql/README.md) for detailed documentation.\n\n---\n\n## 🛠️ Validation \u0026 Logic\n\nObjectQL includes a powerful validation engine that runs universally.\n\n```yaml\n# user.validation.yml\nfields:\n  age:\n    min: 18\n    message: \"Must be an adult\"\n  \n  # Cross-field validation supported!\n  end_date:\n    operator: \"\u003e\"\n    compare_to: \"start_date\"\n\n```\n\nThis validation logic runs:\n\n1. **On the Client (Browser):** For immediate UI feedback (via Object UI).\n2. **On the Server:** For data integrity security.\n*Write once, validate everywhere.*\n\n---\n\n## 📊 Implementation Status\n\n**Current Version:** 4.2.0  \n**Overall Completion:** ~85%  \n**Protocol Compliance:** 85/100 (see [Protocol Compliance Report](./PROTOCOL_COMPLIANCE_REPORT.md))\n\n### Production-Ready Features ✅\n\nObjectQL has **mature, production-ready implementations** of core features:\n\n- ✅ **Validation System (100%)** - Field, cross-field, state machine, uniqueness validation\n- ✅ **Formula Engine (100%)** - Computed fields with JavaScript expressions\n- ✅ **Hook System (100%)** - Complete event lifecycle (before/after create/update/delete/find)\n- ✅ **Action System (100%)** - Custom RPC operations\n- ✅ **Repository Pattern (100%)** - Full CRUD operations\n- ✅ **Security Plugin (100%)** - Comprehensive RBAC, FLS, and RLS with pre-compiled permission checks\n- ✅ **7 Database Drivers (100%)** - SQL, MongoDB, Memory, FS, Excel, Redis, SDK\n- ✅ **3 Protocol Implementations** - GraphQL (85%), OData V4 (80%), JSON-RPC 2.0 (90%)\n- ✅ **CLI Tools (100%)** - Complete development lifecycle\n- ✅ **VSCode Extension (90%)** - IntelliSense and validation\n\n### Protocol Implementation Status 🌐\n\n| Protocol | Compliance | Status | Priority Enhancements |\n|----------|-----------|--------|----------------------|\n| **GraphQL** | 85% | ⚠️ Good | Subscriptions, Federation |\n| **OData V4** | 80% | ⚠️ Good | $expand, $count, $batch |\n| **JSON-RPC 2.0** | 90% | ✅ Excellent | object.count(), action.execute() |\n\n\u003e **📋 See [Protocol Compliance Summary](./PROTOCOL_COMPLIANCE_SUMMARY.md) for quick reference**  \n\u003e **📄 See [Protocol Compliance Report](./PROTOCOL_COMPLIANCE_REPORT.md) for comprehensive analysis**  \n\u003e **🗺️ See [Protocol Development Plan](./PROTOCOL_DEVELOPMENT_PLAN_ZH.md) for detailed roadmap (中文)**\n\n### Plugin Ecosystem 🧩\n\n| Plugin | Status | Description |\n|--------|--------|-------------|\n| **[`@objectql/plugin-workflow`](./packages/foundation/plugin-workflow)** | ✅ Implemented | Full state machine executor with guards, actions, compound states |\n| **[`@objectql/plugin-multitenancy`](./packages/foundation/plugin-multitenancy)** | ✅ Implemented | Automatic tenant isolation via hook-based filter rewriting |\n| **[`@objectql/plugin-sync`](./packages/foundation/plugin-sync)** | ✅ Implemented | Offline-first sync with LWW, CRDT, and manual conflict resolution |\n| **[`@objectql/edge-adapter`](./packages/foundation/edge-adapter)** | ✅ Implemented | Edge runtime detection and capability validation |\n\n### Protocol Layer 🌐\n\n| Package | Compliance | Status |\n|---------|-----------|--------|\n| **[`@objectql/protocol-graphql`](./packages/protocols/graphql)** | 85% | ⚠️ Good — Subscriptions, Federation planned Q2 |\n| **[`@objectql/protocol-odata-v4`](./packages/protocols/odata-v4)** | 80% | ⚠️ Good — $expand, $count, $batch planned Q2 |\n| **[`@objectql/protocol-json-rpc`](./packages/protocols/json-rpc)** | 90% | ✅ Excellent |\n| **[`@objectql/protocol-sync`](./packages/protocols/sync)** | ✅ | ✅ Sync protocol handler with change logs and checkpoints |\n\n### Key Documents\n\n- **[📋 Implementation Status](./IMPLEMENTATION_STATUS.md)** - Complete feature matrix with detailed status\n- **[🌐 Protocol Compliance Summary](./PROTOCOL_COMPLIANCE_SUMMARY.md)** - Quick reference (CN/EN)\n- **[📊 Protocol Compliance Report](./PROTOCOL_COMPLIANCE_REPORT.md)** - Comprehensive audit (60 pages)\n- **[🗺️ Protocol Development Plan (中文)](./PROTOCOL_DEVELOPMENT_PLAN_ZH.md)** - Detailed roadmap (100 pages)\n- **[Roadmap](./docs/roadmap.md)** - Long-term vision and milestones *(if exists)*\n- **[Contributing Guide](./docs/contributing.md)** - How to contribute *(if exists)*\n\n\u003e **💡 See [IMPLEMENTATION_STATUS.md](./IMPLEMENTATION_STATUS.md) for a comprehensive breakdown of what's implemented vs. planned.**\n\n---\n\n## 🛠️ Development \u0026 Contributing\n\nIf you fork or clone the repository to contribute or run examples from source:\n\n1. **Setup Workspace**\n   ```bash\n   git clone https://github.com/objectstack-ai/objectql.git\n   cd objectql\n   corepack enable \u0026\u0026 corepack prepare pnpm@10.28.2 --activate\n   pnpm install\n   ```\n\n2. **Build Packages**\n   You must build all packages before running examples or the dev server, as they rely on local workspace builds.\n   ```bash\n   pnpm build\n   ```\n\n3. **Run Dev Server**\n   Start the full-stack development server with all plugins (ObjectQL + Security + GraphQL + OData + JSON-RPC):\n   ```bash\n   pnpm dev\n   # Equivalent to: objectstack serve --dev\n   # Starts ObjectStack kernel at http://localhost:5050\n   # Loads project-tracker example metadata from objectstack.config.ts\n   ```\n   \n   The dev server is powered by `@objectstack/cli` (v3.0.0). It reads `objectstack.config.ts` in the project root, which configures the kernel with all plugins:\n\n   ```typescript\n   // objectstack.config.ts\n   export default {\n     metadata: { name: 'objectos', version: '1.0.0' },\n     objects: loadObjects(projectTrackerDir),\n     plugins: [\n       new HonoServerPlugin({ port: 5050 }),\n       new ObjectQLPlugin({\n         enableRepository: true,\n         enableQueryService: true,   // ← uses @objectql/plugin-query internally\n         enableValidator: true,\n         enableFormulas: true,\n         datasources: { default: new MemoryDriver() }\n       }),\n       new ObjectQLSecurityPlugin({ enableAudit: false }),\n       new GraphQLPlugin({ basePath: '/graphql' }),\n       new ODataV4Plugin({ basePath: '/odata' }),\n       new JSONRPCPlugin({ basePath: '/rpc' }),\n     ]\n   };\n   ```\n\n   **Available `objectstack` CLI commands** (via `@objectstack/cli`):\n\n   | Command | Description |\n   | :--- | :--- |\n   | `objectstack serve --dev` | Start dev server (same as `pnpm dev`) |\n   | `objectstack serve` | Start production server |\n   | `objectstack create` | Scaffold a new project |\n   | `objectstack doctor` | Diagnose environment issues |\n\n4. **Run Tests**\n   ```bash\n   # Run all tests\n   npx vitest run\n\n   # Run tests for a specific package\n   npx vitest run packages/foundation/core\n\n   # Run tests in watch mode\n   npx vitest --watch\n   ```\n\n5. **Run Examples**\n   \n   These examples run as **scripts** to demonstrate the ObjectQL Core Engine capabilities (Validation, CRUD, Logic Hooks). They use an in-memory database.\n\n   **Starter (Project Tracker):**\n   ```bash\n   # Starts the API Server (http://localhost:3000)\n   pnpm --filter @objectql/example-project-tracker start\n   \n   # Note: Sample data (projects.data.yml) is automatically loaded on startup\n   ```\n\n   **Enterprise ERP:**\n   ```bash\n   pnpm --filter @objectql/example-enterprise-erp start\n   # Output: Plugin initialization, Employee creation logs, Audit trails\n   ```\n\n### Architecture Note\n\nSince [#373](https://github.com/objectstack-ai/objectql/pull/373), `@objectql/core` has been decomposed into focused plugin packages:\n\n- **`@objectql/plugin-query`** — QueryService, QueryBuilder, QueryAnalyzer, FilterTranslator\n- **`@objectql/plugin-optimizations`** — Connection pooling, query compilation, compiled hooks, SQL optimization\n\n`@objectql/core` re-exports these modules with `@deprecated` tags for backward compatibility. **New code should import directly from the plugin packages:**\n\n```typescript\n// ✅ Recommended\nimport { QueryService } from '@objectql/plugin-query';\nimport { QueryCompiler } from '@objectql/plugin-optimizations';\n\n// ❌ Deprecated (still works, but will be removed in v5)\nimport { QueryService, QueryCompiler } from '@objectql/core';\n```\n\n---\n\n## ⚖️ License\n\nObjectQL is open-source software licensed under the [MIT License](https://www.google.com/search?q=LICENSE).\n\nYou can use it freely in personal, commercial, or open-source projects.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\u003csub\u003e\u003cb\u003eThe Foundation of the Object Ecosystem\u003c/b\u003e\u003c/sub\u003e\n\n\n\n\n\u003csub\u003e\u003cb\u003eObjectQL (Data)\u003c/b\u003e • \u003ca href=\"https://github.com/objectql/objectos\"\u003eObjectOS (System)\u003c/a\u003e • \u003ca href=\"https://github.com/objectql/objectui\"\u003eObject UI (View)\u003c/a\u003e\u003c/sub\u003e\n\u003c/div\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fobjectstack-ai%2Fobjectql","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fobjectstack-ai%2Fobjectql","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fobjectstack-ai%2Fobjectql/lists"}