viduli
TypeScript icon, indicating that this package has built-in type declarations

0.0.37 • Public • Published

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

Readme

Keywords

none

Package Sidebar

Install

npm i viduli

Weekly Downloads

0

Version

0.0.37

License

none

Unpacked Size

361 kB

Total Files

261

Last publish

Collaborators

  • avinkav