VQL (Valthera Query Language) is a comprehensive framework for interacting with ValtheraDB. It combines a flexible query language, a powerful permission management system, and a suite of tools to build secure and efficient data-driven applications.
- Dual Query Syntax: Choose between VQLR (a JSON-based object query language for programmatic use) and VQLS (a human-readable string-based language for simpler queries and scripts).
- Multi-Database Support: Process queries across multiple ValtheraDB instances seamlessly.
- Cross-Platform: Run VQL in both Node.js and modern web browsers.
- Extensible by Design: Customize and extend functionality with sheets and custom configurations.
- Advanced Relation Queries: Natively handle complex relationships not just between collections, but also across entire databases.
- Permission System: Built-in, granular access control powered by Gate Warden. It's disabled by default and can be enabled when needed to enforce complex security rules.
- Falcon Frame Integration: Integrates with Falcon Frame for extended capabilities.
- Variable Support: Use predefined or custom variables in your queries, allowing for more dynamic and reusable logic.
Here is an example of how to use the VQLProcessor to execute a query:
import VQLProcessor from "@wxn0brp/vql";
import { Valthera } from "@wxn0brp/db";
// Initialize database instances
const dbInstances = {
myDatabase: new Valthera("path/to/database"),
};
// Create a VQLProcessor instance
const processor = new VQLProcessor(dbInstances);
// Define a query (VQLR)
const query = {
db: "myDatabase",
d: {
find: {
collection: "users",
search: { $gt: { age: 18 } },
fields: { name: 1, age: 1 },
},
},
};
// Or you can use a string query like:
// simple
const VQLS = `
myDatabase users
s.$gt.age = 18
f.name = 1
f.age = 1
`
// Execute the query
(async () => {
try {
const result = await processor.execute(query);
console.log("Query Result:", result);
} catch (error) {
console.error("Error executing query:", error);
}
})();For an enhanced development and debugging experience, you can use VQL-dev, a dedicated tool for debugging VQL queries.
This project is licensed under the MIT License. See the LICENSE file for details.
Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.