Skip to content

GObject Content Repository interfaces following the JCR specification

Notifications You must be signed in to change notification settings

midgardproject/GICR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GObject Content Repository

GICR provides a standard set of content repository interfaces for GObjects. It is based on the Java Content Repository specification. From Wikipedia:

Content Repository API for Java (JCR) is a specification for a Java platform application programming interface (API) to access content repositories in a uniform manner. The content repositories are used in content management systems to keep the content data and also the metadata used in content management systems (CMS) such as versioning metadata.

By using GICR APIs, a GObject-based application can use the standard interfaces for nodes, tree management, versioning and structured queries regardless of how the data is actually stored.

Any GICR repository implementation should be accessible from any environment that can do GObject Introspection, including JavaScript, Python and Ruby.

Why GICR?

Having a standard content repository allows GNOME applications to move from individual file formats or custom databases to managing data in interoperable ways.

The interfaces also allow easy merging of data coming from both local and remote sources, allowing users to switch easily between mobile devices, the cloud and the desktop.

GICR allows moving from saving to versioning, providing a much safer way for users to manage their information, whether dealing with office documents or contact details.

We feel that GICR would provide an especially good base for concepts like the GNOME Documents application.

Status

At this point GICR is in a proposal state and is being developed by the Midgard team. We hope that other GNOME projects will also participate in this effort. For example, having a combined file system and Tracker implementation would be very useful.

Midgard2 is being adapted to these interfaces as the work progresses.

Related projects

Other Content Repository interfaces:

  • JSR-283, Content Repository interfaces for Java
  • NoCR, Content Repository interfaces for Node.js
  • PHPCR, Content Repository interfaces for PHP

Related projects from the GNOME space, all of which could be providers or consumers of GICR:

Developers

About

GObject Content Repository interfaces following the JCR specification

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages