The Persevere project is an open source set of tools for persistence and distributed computing using intuitive standards-based JSON interfaces of HTTP REST, JSON-RPC, JSONPath, and HTTP Channels. The core of the Persevere project is the Persevere Server. The Persevere server includes a Persevere JavaScript client, but the standards-based interface is intended to be used with any framework or client.
Features
The Persevere Server is an object storage engine and application server (running on Java/Rhino) that provides persistent data storage of dynamic JSON data in an interactive server side JavaScript environment with the following key features:
* Create, read, update, and delete access to persistent data through a standard JSON HTTP/REST web interface
* Dynamic object persistence - expando objects, arrays, and JavaScript functions can be stored, for extensive JavaScript persistence support
* Remote execution of JavaScript methods on the server through JSON-RPC for a consistent client/server language platform
* Flexible and fast indexed query capability through JSONQuery/JSONPath
* Comet-based data monitoring capabilities through HTTP Channels with Bayeux transport plugin/negotiation support
* Data-centric capability-based object level security with user management, Persevere is designed to be accessed securely through Ajax with public-facing sites
* Comprehensive referencing capabilities using JSON referencing, including circular, multiple, lazy, non-lazy, cross-data source, and cross-site referencing for a wide variety of object structures
* Data integrity and validation through JSON Schema
* Class-based data hierarchy - typed objects can have methods, inheritance, class-based querying
* Pluggable data source architectures - SQL tables, XML files, remote web services can be used as data stores
* Service discovery through Service Mapping Description