Code Monkey home page Code Monkey logo

marten's Introduction

Marten

Polyglot Persistence Powered by .NET and PostgreSQL

Join the chat at https://gitter.im/JasperFx/Marten Windows Build Status Linux Build status Nuget Package

marten logo

The Marten library provides .NET developers with the ability to use the proven PostgreSQL database engine and its fantastic JSON support as a fully fledged document database. The Marten team believes that a document database has far reaching benefits for developer productivity over relational databases with or without an ORM tool.

Marten also provides .NET developers with an ACID-compliant event store with user-defined projections against event streams.

Working with the Code

Before getting started you will need the following in your environment:

1. .NET Core SDK 2.1

Available here

2. PostgreSQL 9.5+ database with PLV8

You need to enable the PLV8 extension inside of PostgreSQL for running JavaScript stored procedures for the nascent projection support.

Ensure the following:

  • The login you are using to connect to your database is a member of the postgres role
  • An environment variable of marten_testing_database is set to the connection string for the database you want to use as a testbed. (See the Npgsql documentation for more information about PostgreSQL connection strings ).

Help with PSQL/PLV8

  • On Windows, see this link for pre-built binaries of PLV8
  • On *nix, check marten-local-db for a Docker based PostgreSQL instance including PLV8.

Once you have the codebase and the connection string file, run the rake script or use the dotnet CLI to restore and build the solution.

You are now ready to contribute to Marten.

Tooling

Build Commands

Description Windows Commandline PowerShell Linux Shell DotNet CLI
Run restore, build and test build.cmd build.ps1 build.sh dotnet build src\Marten.sln
Run all tests including mocha tests build.cmd test build.ps1 test build.sh test dotnet run -p martenbuild.csproj -- test
Run just mocha tests build.cmd mocha build.ps1 mocha build.sh mocha dotnet run -p martenbuild.csproj -- mocha
Run StoryTeller tests build.cmd storyteller build.ps1 storyteller build.sh storyteller dotnet run -p martenbuild.csproj -- storyteller
Open StoryTeller editor build.cmd open_st build.ps1 open_st build.sh open_st dotnet run -p martenbuild.csproj -- open_st
Run documentation website locally build.cmd docs build.ps1 docs build.sh docs dotnet run -p martenbuild.csproj -- docs
Publish docs build.cmd publish-docs build.ps1 publish-docs build.sh publish-docs dotnet run -p martenbuild.csproj -- publish-docs
Run benchmarks build.cmd benchmarks build.ps1 benchmarks build.sh benchmarks dotnet run -p martenbuild.csproj -- benchmarks

Note: You should have a running Postgres instance while running unit tests or StoryTeller tests.

Mocha Specs

Refer to the build commands section to look up the commands to run Mocha tests. There is also npm run tdd to run the mocha specifications in a watched mode with growl turned on.

Note: remember to run npm install

Storyteller Specs

Refer to build commands section to look up the commands to open the StoryTeller editor or run the StoryTeller specs.

Documentation

The documentation content is the markdown files in the /documentation directory directly under the project root. To run the documentation website locally with auto-refresh, refer to the build commands section above.

If you wish to insert code samples to a documentation page from the tests, wrap the code you wish to insert with // SAMPLE: name-of-sample and // ENDSAMPLE. Then to insert that code to the documentation, add <[sample:name-of-sample]>.

Note: content is published to the gh-pages branch of this repository. Refer to build commands section to lookup the command for publishing docs.

marten's People

Contributors

adamralph avatar cocowalla avatar coreykaylor avatar danielmarbach avatar ekulakov avatar eouw0o83hf avatar ericgreenmix avatar jarroda avatar jaymcguinness avatar jeffdoolittle avatar jenspettersson avatar jeremydmiller avatar jimgolfgti avatar jnevins-gcm avatar jokokko avatar jvdvleuten avatar lngr avatar mdissel avatar migajek avatar mysticmind avatar nieve avatar oakio avatar oskardudycz avatar phillip-haydon avatar scooletz avatar teamdynamiq avatar tetious avatar tim-cools avatar vadimline avatar wastaz 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.