viduli
v0.0.37
Published
Viduli aims to be a complete framework for building & deploying (micro-)service backends. It is currently in alpha and not feature complete.
Downloads
9
Readme
Introduction
Viduli aims to be a complete framework for building & deploying (micro-)service backends. It is currently in alpha and not feature complete.
Viduli's core feature is that it provides an instant CRUD api for any mongoDB
collection. You can run powerful mongoDB queries directly in the front end
through the api using the api client. For example, if you have a mongodb
collection of people
that contains their name
, age
, and gender
. You can
find all females between 20 and 40 in just a single statement, without writing
any backend code:
const peeps = await client.collection('people')
.gt('age', 20)
.lt('age', 40)
.eq('gender', 'female')
.find()
Yet, the flexibility of having a custom coded backend is not lost. You can still run arbitrary code, perform validation, and control access in this backend. You can read more about it in the documentation. (coming soon)
Getting Started
You can create and use a fully featured CRUD backend in viduli in less than 5 minutes:
On the backend
Prerequisites
Installation
npm install -g viduli
Start a new project
viduli init project-name
cd project-name
viduli dev
Create a collection of documents
viduli generate collection blogs
On the frontend (or any other service consumer)
Installation
npm install @viduli/client
Create the client
import { ViduliClient } from '@viduli/client'
const client = new ViduliClient()
Create a document
const doc = await client.collection('blogs').create({
title: 'Hello World!',
description: 'The world is my oyster.',
author: 'Arthur C. Clarke'
})
Roadmap
Viduli TS Framework
- [ ] Document Storage - MongoDb
- [x] CRUD endpoints
- [x] Access Policies
- [x] Domain Events
- [ ] Realtime subscriptions
- [ ] Lifecycle hooks
- [ ] Remote Procedure Calls - gRPC
- [ ] Custom Routes - WIP
- [ ] Authentication
- [x] web3
- [ ] password
- [ ] magic link
- [ ] Admin UI
- [ ] TBD: Functions
- [ ] Object Storage
- [ ] Image Compression
- [ ] Table Storage - Prisma Postgresql
- [ ] CRUD endpoints
Viduli TS Client
- [ ] Document Queries - WIP
- [ ] Authentication
Viduli Go Framework and SDK
- [ ] To be planned