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|http://repo1.maven.org/maven2/org/akubraproject/akubra-core/0.3/akubra-core-0.3.jar] \- The Core Akubra API \[[javadocs|http://fedora-commons.org/documentation/akubra/0.3/site/apidocs/org/akubraproject/package-summary.html]\] |
- Base Implementations
[akubra-fs-0.3.jar|http://repo1.maven.org/maven2/org/akubraproject/akubra-fs/0.3/akubra-fs-0.3.jar] \- Simple filesystem implementation (non-transactional) \[[javadocs|http://fedora-commons.org/documentation/akubra/0.3/site/apidocs/org/akubraproject/fs/FSBlobStore.html]\] |
[akubra-mem-0.3.jar|http://repo1.maven.org/maven2/org/akubraproject/akubra-mem/0.3/akubra-mem-0.3.jar] \- In-memory implementation (non-transactional) \[[javadocs|http://fedora-commons.org/documentation/akubra/0.3/site/apidocs/org/akubraproject/mem/MemBlobStore.html]\] |
[akubra-www-0.3.jar|http://repo1.maven.org/maven2/org/akubraproject/akubra-www/0.3/akubra-www-0.3.jar] \- Web implementation (non-transactional, read-only) \[[javadocs|http://fedora-commons.org/documentation/akubra/0.3/site/apidocs/org/akubraproject/www/WWWStore.html]\] |
- Layering Implementations
[akubra-map-0.3.jar|http://repo1.maven.org/maven2/org/akubraproject/akubra-map/0.3/akubra-map-0.3.jar]\- Wraps an existing BlobStore to provide a blob id mapping layer \[[javadocs|http://fedora-commons.org/documentation/akubra/0.3/site/apidocs/org/akubraproject/map/IdMappingBlobStore.html]\] |
[akubra-mux-0.3.jar|http://repo1.maven.org/maven2/org/akubraproject/akubra-mux/0.3/akubra-mux-0.3.jar] \- Provides a unified view over any number of backing stores \[[javadocs|http://fedora-commons.org/documentation/akubra/0.3/site/apidocs/org/akubraproject/mux/AbstractMuxStore.html]\] |
[akubra-qsc-0.3.jar|http://repo1.maven.org/maven2/org/akubraproject/akubra-qsc/0.3/akubra-qsc-0.3.jar] \- Provides quiescing capability to a BlobStore \[[javadocs|http://fedora-commons.org/documentation/akubra/0.3/site/apidocs/org/akubraproject/qsc/QuiescingBlobStore.html]\] |
[akubra-rmi-0.3.jar|http://repo1.maven.org/maven2/org/akubraproject/akubra-rmi/0.3/akubra-rmi-0.3.jar] \- Allows a BlobStore to be exposed and accessed remotely, via RMI \[[javadocs|http://fedora-commons.org/documentation/akubra/0.3/site/apidocs/org/akubraproject/rmi/package-summary.html]\] |
[akubra-txn-0.3.jar|http://repo1.maven.org/maven2/org/akubraproject/akubra-txn/0.3/akubra-txn-0.3.jar] \- Uses Derby to provide transactional capabilities over a non-transactional store \[[javadocs|http://fedora-commons.org/documentation/akubra/0.3/site/apidocs/org/akubraproject/txn/derby/package-summary.html]\] |
- Utilities
[akubra-tck-0.3.jar|http://repo1.maven.org/maven2/org/akubraproject/akubra-tck/0.3/akubra-tck-0.3.jar] \- Technology Compatibility Kit for Akubra implementations \[[javadocs|http://fedora-commons.org/documentation/akubra/0.3/site/apidocs/org/akubraproject/tck/package-summary.html]\] |
Documentation
Community
We invite you browse our mailing lists, or subscribe and join the conversation:
*Akubra Users* \[subscribe [via google|http://groups.google.com/group/akubra-users/subscribe] or [via email|mailto:akubra-users-subscribe@googlegroups.com] \| [view|http://groups.google.com/group/akubra-users/topics] \]
\\ _General information, questions, release announcements, etc._ |
*Akubra Developers* \[subscribe [via google|http://groups.google.com/group/akubra-dev/subscribe] or [via email|mailto:akubra-dev-subscribe@googlegroups.com] \| [view|http://groups.google.com/group/akubra-dev/topics] \| [original list archive|http://lists.topazproject.org/pipermail/akubra-dev/] \]
\\ _Discussions pertaining the development of Akubra._ |
*Akubra Codewatch* \[subscribe [via google|http://groups.google.com/group/akubra-codewatch/subscribe] or [via email|mailto:akubra-codewatch-subscribe@googlegroups.com] \| [view|http://groups.google.com/group/akubra-codewatch/topics] \]
\\ _Intended for developers, this_ _{+}read-only{+}_ _list provides automatic notification of commits to the source code repository._ |
Source Code
You may download or browse the source code in our subversion repository at the following locations.
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.