Which is Better Node.js ORM Libraries?
waterline vs typeorm

1 Year
waterlinetypeorm
What's Node.js ORM Libraries?

Node.js ORM, or Object-Relational Mapping, is a programming technique that simplifies database interaction in Node.js applications. It enables developers to work with databases using JavaScript or TypeScript objects instead of raw SQL queries. This approach abstracts the complexities of database operations, allowing for a more object-oriented coding style. With features like cross-database compatibility, schema management, query building, and middleware support, Node.js ORM libraries, such as Mongoose, Prisma, Knex, Sequelize, TypeORM, Objection, Bookshelf, and Waterline, provide a convenient and consistent way to model, query, and manage data in various database systems, catering to different project needs and preferences in the Node.js ecosystem.

NPM Package Downloads Trend
Github Stars Ranking
Stat Detail
Package
Weekly Downloads
Github Stars
Open Issues
Last Commit
License
typeorm1,614,55633,2292,360a day agoMIT License
waterline23,0215,41732a year agoMIT License
Feature Comparison
Featureswaterlinetypeorm
Size
Waterline is lightweight, designed to be a flexible data abstraction layer with a smaller footprint.
TypeORM is feature-rich, supporting various databases, resulting in a larger footprint.
Consistency
Waterline provides a schema-agnostic approach, allowing dynamic data models for NoSQL databases.
TypeORM enforces a consistent schema for a wide range of databases, promoting data integrity.
Mutability
Waterline allows dynamic schema changes, making it suitable for projects with changing data structures.
TypeORM allows for easy schema modifications, accommodating changing business needs.
Localization
Waterline does not natively support localization but can be extended using custom code.
TypeORM does not include native localization support but can be extended using custom implementations.
Extensibility
Waterline is extensible, allowing developers to create custom adapters and extend core functionality.
TypeORM is extensible, allowing the creation of custom repositories, listeners, and query builders.
Maintenance
Waterline is maintained, with updates occurring to address issues and improve compatibility.
TypeORM is actively maintained, with a dedicated team and a supportive community.
Popular
Waterline is known in certain communities and is chosen for its simplicity and flexibility.
TypeORM is popular for its extensive feature set and support for various databases.
Learning Curve
Waterline has a low to moderate learning curve, suitable for developers aiming for simplicity.
TypeORM has a moderate learning curve, but its feature set may require more exploration.
Ecosystem
Waterline has a niche ecosystem with support for various databases and community-contributed adapters.
TypeORM has a diverse ecosystem with extensive community-contributed plugins and extensions.
NPM Package Introudction

Waterline logo

Master Branch Build Status Master Branch Build Status (Windows) StackOverflow (waterline) StackOverflow (sails)

Waterline is a next-generation storage and retrieval engine, and the default ORM used in the Sails framework.

It provides a uniform API for accessing stuff from different kinds of databases and protocols. That means you write the same code to get and store things like users, whether they live in MySQL, MongoDB, neDB, or Postgres.

Waterline strives to inherit the best parts of ORMs like ActiveRecord, Hibernate, and Mongoose, but with a fresh perspective and emphasis on modularity, testability, and consistency across adapters.

No more callbacks

Starting with v0.13, Waterline takes full advantage of ECMAScript & Node 8's await keyword.

In other words, no more callbacks.

var newOrg = await Organization.create({
  slug: 'foo'
})
.fetch();

Looking for the version of Waterline used in Sails v0.12? See the 0.11.x branch of this repo. If you're upgrading to v0.13 from a previous release of Waterline standalone, take a look at the upgrading guide.

Installation

Install from NPM.

  $ npm install waterline

Overview

Waterline uses the concept of an adapter to translate a predefined set of methods into a query that can be understood by your data store. Adapters allow you to use various datastores such as MySQL, PostgreSQL, MongoDB, Redis, etc. and have a clear API for working with your model data.

Waterline supports a wide variety of adapters, both core and community maintained.

Usage

The up-to-date documentation for Waterline is maintained on the Sails framework website. You can find detailed API reference docs under Reference > Waterline ORM. For conceptual info (including Waterline standalone usage), and answers to common questions, see Concepts > Models & ORM.

Help

Check out the recommended community support options for tutorials and other resources. If you have a specific question, or just need to clarify how something works, ask for help or reach out to the core team directly.

You can keep up to date with security patches, the Waterline release schedule, new database adapters, and events in your area by following us (@sailsjs) on Twitter.

Bugs   NPM version

To report a bug, click here.

Contribute

Please observe the guidelines and conventions laid out in our contribution guide when opening issues or submitting pull requests.

Tests

All tests are written with mocha and should be run with npm:

  $ npm test

License

MIT. Copyright © 2012-present Mike McNeil & The Sails Company

Waterline, like the rest of the Sails framework, is free and open-source under the MIT License.

image_squidhome@2x.png