Giter Site home page Giter Site logo

forkkit / mangodb Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ferretdb/ferretdb

0.0 1.0 0.0 386 KB

A truly Open Source MongoDB alternative

Home Page: https://www.mangodb.io

License: Apache License 2.0

Dockerfile 0.10% Makefile 1.43% Go 98.47%

mangodb's Introduction

MangoDB

MangoDB is set out to become the de-facto open-source alternative to MongoDB. MangoDB is an open-source proxy, which converts MongoDB wire protocol queries to SQL, and uses PostgreSQL as a database engine.

Why do we need MangoDB?

MongoDB is a life-changing technology for many developers, empowering them to build applications faster than using relational databases. Its easy-to-use and well-documented drivers make MongoDB one of the easiest to use database solutions available. However, MongoDB abandoned its open-source roots, changing the license to SSPL - making it unusable for many open source and commercial projects.

Most MongoDB users are not in need of many of the advanced features offered by MongoDB; however, they are in need of an open-source database solution. Recognizing this, MangoDB is here to fill the gap by providing an alternative.

Scope

MangoDB will be compatible with MongoDB drivers and will work as a drop-in replacement for MongoDB in many cases.

Current state

What you see here is a tech demo intended to show a proof of concept. Over the next couple of months, we will be working on adding more. See this example for a short demonstration.

MangoDB is in a very early stage and welcomes all contributors. See CONTRIBUTING.md.

Quickstart

Those steps describe a quick local setup. They are not suitable for production use.

  1. Store the following in the docker-compose.yml file:
version: "3"

services:
  postgres:
    image: postgres:14
    container_name: postgres
    ports:
      - 5432:5432
    environment:
      - POSTGRES_USER=user
      - POSTGRES_DB=mangodb
      - POSTGRES_HOST_AUTH_METHOD=trust

  postgres_setup:
    image: postgres:14
    restart: on-failure
    entrypoint: ["sh", "-c", "psql -h postgres -U user -d mangodb -c 'CREATE SCHEMA IF NOT EXISTS test'"]

  mangodb:
    image: ghcr.io/mangodb-io/mangodb:latest
    container_name: mangodb
    ports:
      - 27017:27017
    command: ["--listen-addr=:27017", "--postgresql-url=postgres://user@postgres:5432/mangodb"]
  • postgres container runs PostgreSQL 14 that would store data.
  • postgres_setup container creates a PostgreSQL schema test that would act like a MangoDB database of the same name.
  • mangodb runs MangoDB.
  1. Start services with docker-compose up -d.

  2. If you have mongosh installed, just run it to connect to MangoDB database test. If not, run the following command to run mongosh inside the temporary MongoDB container, attaching to the same Docker network:

docker run --rm -it --network=mangodb_default --entrypoint=mongosh mongo:5 mongodb://mangodb/

Contact us

Visit us at www.mangodb.io, get in touch, and sign up for updates on the project.

mangodb's People

Contributors

ae-govau avatar aleksi avatar hugojosefson avatar opensauce avatar ptrfarkas avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.