All Projects → torodb → Server

torodb / Server

Licence: agpl-3.0
ToroDB Server is an open source NoSQL database that runs on top of a RDBMS. Compatible with MongoDB protocol and APIs, but with support for native SQL, atomic operations and reliable and durable backends like PostgreSQL

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Server

Android Nosql
Lightweight, simple structured NoSQL database for Android
Stars: ✭ 284 (+192.78%)
Mutual labels:  mongodb, nosql
Mongo
The MongoDB Database
Stars: ✭ 20,883 (+21428.87%)
Mutual labels:  mongodb, nosql
Dotnetguide
🦸【C#/.NET/.NET Core学习、工作、面试指南】概述:C#/.NET/.NET Core基础知识,学习资料、文章、书籍,社区组织,工具和常见的面试题总结。以及面试时需要注意的事项和优秀简历编写技巧,希望能和大家一起成长进步👊。【让现在的自己不再迷漫✨】
Stars: ✭ 308 (+217.53%)
Mutual labels:  mongodb, nosql
Mongodb Quickstart Course
Course demos and handout material for Talk Python's MongoDB Quickstart course
Stars: ✭ 220 (+126.8%)
Mutual labels:  mongodb, nosql
Jetbrains Webcast Build With Mongodb
Code and handouts for my JetBrains webcast recorded January 30, 2018
Stars: ✭ 25 (-74.23%)
Mutual labels:  mongodb, nosql
Db
Data access layer for PostgreSQL, CockroachDB, MySQL, SQLite and MongoDB with ORM-like features.
Stars: ✭ 2,832 (+2819.59%)
Mutual labels:  mongodb, nosql
Westore
更好的小程序项目架构
Stars: ✭ 3,897 (+3917.53%)
Mutual labels:  mongodb, nosql
Nosqlmap
Automated NoSQL database enumeration and web application exploitation tool.
Stars: ✭ 1,928 (+1887.63%)
Mutual labels:  mongodb, nosql
Mondocks
An alternative way to interact with MongoDB databases from F# that allows you to use mongo-idiomatic constructs
Stars: ✭ 20 (-79.38%)
Mutual labels:  mongodb, nosql
Mongo Cxx Driver
C++ Driver for MongoDB
Stars: ✭ 792 (+716.49%)
Mutual labels:  mongodb, nosql
Helicalinsight
Helical Insight software is world’s first Open Source Business Intelligence framework which helps you to make sense out of your data and make well informed decisions.
Stars: ✭ 214 (+120.62%)
Mutual labels:  mongodb, nosql
Rest Hapi
🚀 A RESTful API generator for Node.js
Stars: ✭ 1,102 (+1036.08%)
Mutual labels:  mongodb, nosql
Mongoose
Mongoose module for Nest framework (node.js) 🍸
Stars: ✭ 191 (+96.91%)
Mutual labels:  mongodb, nosql
Odmantic
Async ODM (Object Document Mapper) for MongoDB based on python type hints
Stars: ✭ 240 (+147.42%)
Mutual labels:  mongodb, nosql
Mage2vuestorefront
Magento to Vue-storefront datapump - synchronizes Products, Categories and Product-to-category links between your Magento2 API and NoSQL database of vue-storefront
Stars: ✭ 183 (+88.66%)
Mutual labels:  mongodb, nosql
Nosqlclient
Cross-platform and self hosted, easy to use, intuitive mongodb management tool - Formerly Mongoclient
Stars: ✭ 3,399 (+3404.12%)
Mutual labels:  mongodb, nosql
Variety
A schema analyzer for MongoDB
Stars: ✭ 1,592 (+1541.24%)
Mutual labels:  mongodb, nosql
Grandnode
Open source, headless, multi-tenant eCommerce platform built with .NET Core, MongoDB, AWS DocumentDB, Azure CosmosDB, Vue.js.
Stars: ✭ 1,768 (+1722.68%)
Mutual labels:  mongodb, nosql
Restheart
RESTHeart - The REST API for MongoDB
Stars: ✭ 659 (+579.38%)
Mutual labels:  mongodb, nosql
Nodbi
Document DBI connector for R
Stars: ✭ 56 (-42.27%)
Mutual labels:  mongodb, nosql

ToroDB

ToroDB is an open source project that turns your RDBMS into a MongoDB-compatible server, supporting the MongoDB query API and MongoDB's replication, but storing your data into a reliable and trusted ACID database. ToroDB currently supports PostgreSQL as a backend, but others will be added in the future.

ToroDB natively implements the MongoDB protocol, so you can use it with MongoDB tools and drivers, and features a document-to-relational mapping algorithm that transforms the JSON documents into relational tables. ToroDB also offers a native SQL layer and automatic data normalization and partitioning based on JSON documents' implicit schema.

ToroDB follows a RERO (Release Early, Release Often) policy. Current version is considered a "developer preview" and hence is not suitable for production use. Use at your own risk. However, any feedback, contributions, help and/or patches are very welcome. Please join the torodb-dev mailing list for further discussion.

For more information, please see ToroDB's website, this latest presentation or this video recording of a presentation about ToroDB.

Requisites

ToroDB is written in Java and requires:

  • A suitable JRE, version 7 or higher. It has been mainly tested with Oracle JRE 8.
  • A PostgreSQL database, version 9.4 or higher. Download.

Download/Installation

Download the compiled file

You may download the latest version (v. 0.40-alpha2) of ToroDB from the release page on the following packaging formats:

See below for instructions on how to run it.

You can also find binary files on ToroDB's maven repository.

Compile and install from sources

To get the latest version, you may compile ToroDB yourself. All the project is written in Java and managed with Maven, so you need a javac and maven.

ToroDB is based on the Mongo Wire Protocol library (mongowp), which is another library built by 8Kdata to help construct programs that speak the MongoDB protocol. You may also compile this library yourself, or let maven download it from the repository automatically.

Just run mvn package -P assembler on the root directory and execute it from torodb/target/appassembler/bin or choose your prefered packaging format from torodb/target/dist/.

Compile and create docker image

To build the docker image the first time run mvn package -P docker,assembler -Ddocker.skipbase=false on the root directory.

Next time you will be able to build the torodb docker image running mvn package -P docker,assembler.

To run docker containers of ToroDB with PostgreSQL backend just run mvn docker:run -P docker,assembler -pl :standalone. You will have now ToroDB running on port 27018 and will be able to watch created table connection to PostgreSQL on port 15432 (user: postgres, password: postgres, database: torod).

Running ToroDB

ToroDB needs either a configuration file or some command-line parameters to run. But it can also run without any of them if you follow some conventions.

Before running ToroDB it is necessary to configure the RDBMS with the ToroDB user that will be responsible to create namespaces, required data types, tables and indexes.

Create user torodb (this is default user name, see ToroDB configuration to use a different name):

=# CREATE USER torodb WITH  SUPERUSER PASSWORD '<your-password>';

Create the database torod (this is default database name, see ToroDB configuration to use a different name):

=# CREATE DATABASE torod OWNER torodb;

The script $TOROHOME/bin/torodb (or torodb.bat) will run ToroDB. ToroDB can be configured by a configuration file written in YAML or XML formats by passing arguments -c or -x, respectively, to the script $TOROHOME/bin/torodb. For example, to run ToroDB with configuration file torodb.yml, run:

$ $TOROHOME/bin/torodb -c torodb.yml

To print default configuration script in YAML or XML format use the arguments -l an -lx respectively. For example to generate default YAML configuration file:

$ $TOROHOME/bin/torodb -l > torodb.yml

ToroDB connects to the backend database using user torodb (that has been created in previous step). By default ToroDB reads the file $HOME/.toropass (file path can be configured in the configuration), if it exists, that stores the password in PostgreSQL's .pgpass syntax. The password can also be specified in clear text in the configuration file or will be asked at the prompt if the argument -W is issued.

To get general help, pass --help argument:

$ $TOROHOME/bin/torodb --help

Use --help-param to get help on all available parameters of the configuration file:

$ $TOROHOME/bin/torodb --help-param

If you setup a .toropass, use torodb as the user and torod as the database, ToroDB will run without a configuration file (with the rest of the configuration values with their respective defaults).

Once ToroDB is running, connect to it with a normal MongoDB client, like:

$ mongo localhost:27018/torod

Are you a developer? Want to contribute? Questions about the source code?

Please see CONTRIBUTING.

Code QA

  • Master branch: Build Status Codacy Badge Codacy Coverage
  • Devel branch: Build Status Codacy Badge Codacy Coverage
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].