Git Product home page Git Product logo

reem's Introduction

REEM

REEM (Redis Extendable Efficient Middleware) is a centralized middleware package for robotic communication. It is designed to be a single-package solution for passing information anywhere in the robot while emphasizing ease of use and efficiency.

To make it easy, we chose to model information as a nested data structure that closely resembles python dictionaries. To the user, working with a database feels like working with a python dictionary. Out of the box, REEM supports communicating all native python types and numpy arrays.

To make it fast, we used Redis (an in-memory key-value database) running ReJSON (enabling Redis to store JSON data) as a central information store. To get maximum performance, we give users the power to control exactly how information is passed between the local program and Redis by defining their own encoder/decoder objects.

REEM currently offers two communication paradigms:

  • get/set database
  • publish-subscribe

To install the python package (and its dependencies), run

pip install reem

See the docs on read the docs

reem's People

Contributors

tn74 avatar

Stargazers

 avatar Guy Korland avatar  avatar Michael avatar

Watchers

James Cloos avatar

Forkers

krishauser

reem's Issues

Good Default Arguments

Ensure there are good default arguments when instantiating objects for the "Batteries Included mindset"

  • Moved RedisInterface from supports to connection

PubSub Documentation

Warning:

  • If you are listening on a subkey and a superkey gets updated, you won't be notified

Pubsub Threading

Enforce default behavior of passive subscriber reading be a local copy of the data

Bug in PubSub Update Subscriber

When looking for metadata updates, some deletions are not made. The program does not check if deletions are made at a higher level than an existing path. IE

.subkey.np1arr
is not deleted by a set at
.

Name Checks

Ensure no key names have the seperator, . or * in their names

Metadata Stored With JSON

Get rid of the metadata being stored as a separate entity so that rejson and redis updates are atomic for the reader

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.