Skip to content

grove/presto

Repository files navigation

Presto is an editing framework made for data integrators. The goal is to make it easier to tie together data from multiple data sources into one coherent whole without having to centralize data storage.

The idea behind Presto is that you can declare the rules for an editable object model in a schema. You then create and update data conforming to this schema using a data provider implementation. There might be multiple schema providers and multiple data providers connected into a larger whole. A schema provider is responsible for the definition of a specific type, but the data it defines may be stored in many locations.

A schema is exposed through a schema provider and the data is accessed through a data provider. By default the values of an object field is stored with the object itself, but there is a field resolver API that lets you pull in data from anywhere.

The framework consists of an SPI for schema providers, data providers and field resolvers. There is also a JAX/RS application that provides a REST interface for accessing and updating data. What is missing at this time is a client-side editor implementation that uses the REST API.

Table of Contents

Features

  • Hypermedia-driven editing framework
  • JSON with links over HTTP (implemented with Java/JAX-RS).
  • Data providers: MongoDB, CouchDB, Riak, In-memory
  • Schema providers: In-memory/JSON
  • Field resolvers: MongoDB queries, Solr queries, CouchDB views, Java functions

Trying it out

To start the REST interface, run the following commands:

 cd presto-webdemo;
 mvn -Djetty.port=9999 jetty:run

Then open http://localhost:9999/presto/editor in your web browser. You can now follow the links to access the data in the data provider. You can also use the REST API to create and update data also. The API documentation is on its way.

News

  • 2013-06-17: Version 0.7
  • 2013-02-26: Version 0.6
  • 2012-10-22: Version 0.5

Ideas for the future

  • The project needs an open source client-side GUI that uses the REST API to provide HTML5 based editing.
  • Search and filtering API
  • Wizard-like editing flow
Feel free to take on any of these, or any other, if you want:

  • A GUI built on top of the REST API
  • Data providers: SPARQL, Blueprints, Cassandra, Solr, elasticsearch, JDBC, JPA
  • Field resolvers: elasticsearch query, Riak secondary indexes
  • Schema providers: a schema provider that stores its state in a data provider
See TODO.txt for a more detailed list.

License

Apache License, Version 2.0

About

Presto is a hypermedia-driven editing framework.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages