All Projects → jackhallam → weightless-orm

jackhallam / weightless-orm

Licence: Apache-2.0 license
🛸 A lightweight database mapping library

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to weightless-orm

Vscode Cosmosdb
VS Code extension for Azure Databases
Stars: ✭ 131 (+445.83%)
Mutual labels:  mongo
Mevn Stack
A Quickstart for building an Express API with a VueJS Admin Portal
Stars: ✭ 178 (+641.67%)
Mutual labels:  mongo
Odmantic
Async ODM (Object Document Mapper) for MongoDB based on python type hints
Stars: ✭ 240 (+900%)
Mutual labels:  mongo
Hashbrown Cms
A free and open-source headless CMS
Stars: ✭ 140 (+483.33%)
Mutual labels:  mongo
Bigdata docker
Big Data Ecosystem Docker
Stars: ✭ 161 (+570.83%)
Mutual labels:  mongo
Chartbrew
Open-source web platform for creating charts out of different data sources (databases and APIs) 📈📊
Stars: ✭ 199 (+729.17%)
Mutual labels:  mongo
Pa11y Webservice
Pa11y Webservice provides scheduled accessibility reports for multiple URLs
Stars: ✭ 122 (+408.33%)
Mutual labels:  mongo
nestjs-api-mongoose
Collection example apps with NestJS and Typeorm, Sequelize, Mongodb, PostgreSQL, MySQL, GraphQL, Mercurius, etc. for the NestJS community 😻
Stars: ✭ 153 (+537.5%)
Mutual labels:  mongo
Mongo Cluster Docker
Docker compose config for mongodb cluster
Stars: ✭ 165 (+587.5%)
Mutual labels:  mongo
Php Mongo
MongoDB ODM. Part of @PHPMongoKit
Stars: ✭ 228 (+850%)
Mutual labels:  mongo
Nest User Auth
A starter build for a back end which implements managing users with MongoDB, Mongoose, NestJS, Passport-JWT, and GraphQL.
Stars: ✭ 145 (+504.17%)
Mutual labels:  mongo
Youtubemeetupappreactnativenode
Repos of my youtube tutorial where we build a Meetup app with React-Native and Node
Stars: ✭ 153 (+537.5%)
Mutual labels:  mongo
Mern Passport
A boilerplate example of using passport.js for authenticating a MERN application
Stars: ✭ 214 (+791.67%)
Mutual labels:  mongo
Go Clean Architecture
👨‍💻 REST API example, built by following Uncle Bob’s clean architecture principles
Stars: ✭ 133 (+454.17%)
Mutual labels:  mongo
docker-mongo
MongoDB Docker image embedding RocksDB storage engine
Stars: ✭ 32 (+33.33%)
Mutual labels:  mongo
Apiproject
[https://www.sofineday.com], golang项目开发脚手架,集成最佳实践(gin+gorm+go-redis+mongo+cors+jwt+json日志库zap(支持日志收集到kafka或mongo)+消息队列kafka+微信支付宝支付gopay+api加密+api反向代理+go modules依赖管理+headless爬虫chromedp+makefile+二进制压缩+livereload热加载)
Stars: ✭ 124 (+416.67%)
Mutual labels:  mongo
Aspnetcore.identity.mongo
This is a MongoDB provider for the ASP.NET Core 2 Identity framework
Stars: ✭ 179 (+645.83%)
Mutual labels:  mongo
BroadcastBot
A simple Telegram bot that can broadcast messages and media to the bot subscribers. with mongo DB support
Stars: ✭ 73 (+204.17%)
Mutual labels:  mongo
MongoDB-University
Repo for All MongoDB University Courses
Stars: ✭ 102 (+325%)
Mutual labels:  mongo
Flipper
🐬 Beautiful, performant feature flags for Ruby.
Stars: ✭ 2,732 (+11283.33%)
Mutual labels:  mongo

Weightless is the lowest barrier-to-entry database mapping library for the JVM. Weightless currently supports MongoDB. Learn more at weightlessorm.com.

Github Code Maven Central Travis CI Build Status Codacy Badge CodeFactor Code Quality LGTM Code Quality codecov Gitter

Getting Started

Suppose we have a Person object we want to store in a Mongo database.

class Person {
  String name;
  int age;
}

With the Weightless library, the next class we will create is a PersonAccess interface. Note the method level and parameter level annotations.

interface PersonAccess {
  @Create
  void create(Person person);
  
  @Find
  Person findByName(@Field("name") @Equals String name);
}

Wait! We never have to implement this interface! Weightless has enough information to implement this class for us at runtime.

Weightless weightless = Weightless.mongo("mongodb://localhost:27017").database("mydatabase").build(); // Connect to a local MongoDB instance
PersonAccess personAccess = weightless.get(PersonAccess.class); // PersonAccess is implemented for us here

Person james = new Person("James", 30);
personAccess.create(james);

personAccess.findByName("James"); // { "name": "James", "age": 30 }

Installation

Install with maven:

<dependency>
  <groupId>com.jackhallam</groupId>
  <artifactId>weightless-orm</artifactId>
  <version>0.1.1-beta</version>
</dependency>

Is Weightless for Me?

Is Weightless a good fit for your project? Weightless is designed to help projects get connected to a database as quickly as possible. Weightless is highly opinionated; it gives developers fewer customization options, and in return it is extremely easy to use.

That being said, Weightless does not lock you in. Off-boarding when your project is mature enough to need a highly customized solution is very simple. You can still use the same database, and you can move one database table or collection away from Weightless' control at a time as needed.

Going Further

Visit weightlessorm.com for a more information with live examples.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].