Introduction
The Akubra Project is a new effort to provide a pluggable file storage interface that can be adapted to almost any storage subsystem. Akubra supports both ordinary and transactional storage systems, but makes simplifying assumptions in order to achieve a high level of interoperability between storage systems:
In Akubra:
- a Blob is a finite-length bitstream with an id (a URI)
- a Blob Store is primarily concerned with providing read/write access to blobs.
News
- March 13th, 2010 - Akubra 0.3 released. This release has no core API changes, but several important improvements:
- The core Akubra jars are now available in Maven Central
- All jars are now compiled for Java 6 (Java 5 has reached its End of Service Life)
- All jars now include OSGi metadata
- Logging is now done via SLF4J (was commons-logging)
- The JTA dependency is now to version 1.1 (was previously 1.0.1B)
- November 27th, 2009 - Akubra 0.2 released. This release:
- Uses the latest version of Derby for the akubra-txn implementation
- Repackages the Akubra classes under org.akubraproject
- April 30th, 2009 - Akubra 0.1 released.
Downloads
- Core API
akubra-core-0.3.jar - The Core Akubra API [javadocs]
- Base Implementations
akubra-fs-0.3.jar - Simple filesystem implementation (non-transactional) [javadocs]
akubra-mem-0.3.jar - In-memory implementation (non-transactional) [javadocs]
akubra-www-0.3.jar - Web implementation (non-transactional, read-only) [javadocs]
- Layering Implementations
akubra-map-0.3.jar- Wraps an existing BlobStore to provide a blob id mapping layer [javadocs]
akubra-mux-0.3.jar - Provides a unified view over any number of backing stores [javadocs]
akubra-qsc-0.3.jar - Provides quiescing capability to a BlobStore [javadocs]
akubra-rmi-0.3.jar - Allows a BlobStore to be exposed and accessed remotely, via RMI [javadocs]
akubra-txn-0.3.jar - Uses Derby to provide transactional capabilities over a non-transactional store [javadocs]
- Utilities
akubra-tck-0.3.jar - Technology Compatibility Kit for Akubra implementations [javadocs]
Known Third-Party Implementations
- https://github.com/smeg4brains/akubra-hdfsakubra-hdfs - Concrete implementation for Hadoop filesystems
- akubra-bhle - Multiplexing implementation with short-term and long-term underlying stores
- irods-akubra - (TBD) IRODS implementation
Documentation
- Requirements and Goals
- Analysis of Existing Approaches
- Latest API Documentation (Javadocs)
- Latest Maven Site
Community
We invite you browse our mailing lists, or subscribe and join the conversation:
Akubra Users [subscribe via google or via email | view ]
General information, questions, release announcements, etc.Akubra Developers [subscribe via google or via email | view | original list archive ]
Discussions pertaining the development of Akubra.Akubra Codewatch [subscribe via google or via email | view ]
Intended for developers, this read-only list provides automatic notification of commits to the source code repository.
Source Code
The source source repository is hosted at github:
- Browse: https://github.com/akubra/akubra
- Anonymous Clone: git clone git://github.com/akubra/akubra.git
- Committer Clone: git clone git@github.com:akubra/akubra.git
Note: You will need JDK 1.6+ and maven to build.
Coding conventions for this project are currently documented here (TODO:migrate here).
Issue Tracking
Bugs and features for this project will be tracked here.