Giter VIP home page Giter VIP logo

pbdb's Introduction

pbdb

If you have an immediate need for a Go embeddable, Protobuf native data store, I recommend Storm, which runs on Bolt and supports several codecs. Or if Go is not a requirement then ProfaneDB has the same objectives as this project.

This project will be the intersection of Storm and ProfaneDB.

  • Your gRPC compatible Protobuf definitions will dictate the storage schema without Go specific tags or structures.
  • Rather than Bolt, the newer dgraph-io/badger store will be used for it's notable performance advantage.
  • Instead of an ORM with SQL-like methods that depend on reflection, consider plugging into the existing Go protoc pipline to simultaneously generate type safe accessors (work we've already done elsewhere) for search.

For project status, see the issues and milestones.

pbdb's People

Contributors

jason-abbott avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

pbdb's Issues

Devise means of indicating which fields should be indexed

Indexing means creating a separate set of key-values where the field to be indexed becomes the (lexicographically sorted) key and the value it points to is the actual key of the full Protobuf message. That overhead means we probably don't want to do it for every field.

Develop scheme for handling nested messages types (objects)

Like issue #2, this is handled in Go ORMs using annotations (tags) to indicate which child structs should be stored as an independent key-value pair matched to its parent in the codec.

The initial approach will probably do nothing -- just enode children with parents. We need to add use cases illustrating pros and cons of flattening the message structure.

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.