The APIs listed on this page have the following attributes in common:
- They each provide a means to read and write persistent files with unique ids.
- They were designed with back-end pluggability in mind.
- They are not concerned with directory/folder semantics.
- They are not concerned with versioning semantics, but may allow files to be overwritten.
APIs and Implementations
API |
Language |
Target Application |
Known Implementations |
---|---|---|---|
Java |
General-Purpose |
AKU-FS: FSBlobStore |
|
Java |
Alfresco CMS |
ALF-FS: FileContentStore |
|
Java |
DSpace 2 (Unreleased) |
BIT-FED: FedoraBitStore |
|
Python |
Any Using Django |
||
Java |
Daisy CMS |
||
COM |
MS SQL Server |
||
Java |
Apache JackRabbit |
||
Java |
Apache JackRabbit |
||
Java |
Fedora Repository (2.x to 3.1) |
LLS-FS: GenericFileSystem |
|
Java |
Topaz OTM |
||
Java / C |
General-Purpose |
Capability Matrix
API/Impl |
ID Type |
ID Gen |
Write? |
Rewrite? |
Read-Only MD |
Writable MD |
Listing Options |
Transactions |
|
---|---|---|---|---|---|---|---|---|---|
AKU-API |
URI |
User or Store |
Yes |
Yes |
Size |
? |
All |
Optional, JTA |
|
AKU-FS |
file:/// URI |
Store |
Yes |
Yes |
Size |
None |
All |
No |
|
API/Impl |
ID Type |
ID Gen |
Write? |
Rewrite? |
Read-Only MD |
Writable MD |
Listing Options |
Transactions |
|
ALF-API |
URL |
User or Store |
Yes |
Yes |
Size |
None |
All |
Optional, JTA |
|
ALF-FS |
store:// URL |
User or Store |
Yes |
Yes |
Size |
None |
All |
Optional, JTA |
|
ALF-HTT |
http:// URL |
N/A |
No |
No |
Size |
None |
None |
Optional, JTA |
|
ALF-REP |
URL |
User or Store |
Yes |
Yes |
Size |
None |
All |
Optional, JTA |
|
ALF-ROU |
URL |
User or Store |
Yes |
Yes |
Size |
None |
All |
Optional, JTA |
|
API/Impl |
ID Type |
ID Gen |
Write? |
Rewrite? |
Read-Only MD |
Writable MD |
Listing Options |
Transactions |
|
BIT-API |
Unicode String |
User or Store |
Yes |
Yes |
Any (Map) |
None |
None |
No |
|
BIT-FED |
(NCNameChar)* |
User or Store |
Yes |
No |
Size |
None |
None |
No |
|
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="6f88c5bc-1e26-468c-b20b-a50146e1130e"><ac:plain-text-body><![CDATA[ |
BIT-FS |
([0-9]){38,40} |
User or Store |
Yes |
Yes |
Size |
None |
None |
No |
BIT-HON |
? |
? |
? |
? |
? |
None |
None |
No |
|
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="a9a691e6-88db-451f-bb52-1ce787e19dfc"><ac:plain-text-body><![CDATA[ |
BIT-S3 |
([0-9]){38,40} |
User or Store |
Yes |
Yes |
Size |
None |
None |
No |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="00500e63-6287-4448-92f9-bb2dba681a4e"><ac:plain-text-body><![CDATA[ |
BIT-SRB |
([0-9]){38,40} |
User or Store |
Yes |
Yes |
Size |
None |
None |
No |
API/Impl |
ID Type |
ID Gen |
Write? |
Rewrite? |
Read-Only MD |
Writable MD |
Listing Options |
Transactions |
|
DJA-API |
Unicode String |
User |
Yes |
Yes |
Size |
None |
None |
No |
|
DJA-FS |
Unicode String |
User |
Yes |
Yes |
Size |
None |
None |
No |
|
DJA-S3 |
Unicode String |
User |
Yes |
Yes |
Size |
None |
None |
No |
|
API/Impl |
ID Type |
ID Gen |
Write? |
Rewrite? |
Read-Only MD |
Writable MD |
Listing Options |
Transactions |
|
DSY-API |
Unicode String |
Store |
Yes |
No |
None |
None |
None |
No |
|
DSY-FS |
Unicode String |
Store |
Yes |
No |
None |
None |
None |
No |
|
API/Impl |
ID Type |
ID Gen |
Write? |
Rewrite? |
Read-Only MD |
Writable MD |
Listing Options |
Transactions |
|
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="5055cc01-c40f-4c6d-b70d-91c2615dfbb6"><ac:plain-text-body><![CDATA[ |
EBS-API |
byte[] |
Store |
Yes |
No |
Size |
None |
None |
No |
EBS-FS |
GUID or String |
Store |
Yes |
No |
Size |
None |
None |
No |
|
API/Impl |
ID Type |
ID Gen |
Write? |
Rewrite? |
Read-Only MD |
Writable MD |
Listing Options |
Transactions |
|
JKB-API |
Unicode String |
Store |
Yes |
Yes |
None |
None |
None |
No |
|
JKB-DB |
propertyId + index |
Store |
Yes |
Yes |
None |
None |
None |
No |
|
JKB-FS |
Filesystem Path |
Store |
Yes |
Yes |
None |
None |
None |
No |
|
API/Impl |
ID Type |
ID Gen |
Write? |
Rewrite? |
Read-Only MD |
Writable MD |
Listing Options |
Transactions |
|
JKD-API |
Hex String |
Store |
Yes |
No |
Size |
None |
All |
No |
|
JKD-DB |
SHA-1 Digest of Content |
Store |
Yes |
No |
Size |
None |
All |
No |
|
JKD-FS |
SHA-1 Digest of Content |
Store |
Yes |
No |
Size |
None |
All |
No |
|
API/Impl |
ID Type |
ID Gen |
Write? |
Rewrite? |
Read-Only MD |
Writable MD |
Listing Options |
Transactions |
|
LLS-API |
pid or pid + dsId |
User |
Yes |
Yes |
None |
None |
None |
No |
|
LLS-FS |
pid or pid + dsId |
User |
Yes |
Yes |
None |
None |
None |
No |
|
LLS-HON |
pid or pid + dsId |
User |
Yes |
Yes |
None |
None |
None |
No |
|
LLS-IRD |
pid or pid + dsId |
User |
Yes |
Yes |
None |
None |
None |
No |
|
LLS-S3 |
pid or pid + dsId |
User |
Yes |
Yes |
None |
None |
None |
No |
|
LLS-SRB1 |
pid or pid + dsId |
User |
Yes |
Yes |
None |
None |
None |
No |
|
LLS-SRB2 |
pid or pid + dsId |
User |
Yes |
Yes |
None |
None |
None |
No |
|
API/Impl |
ID Type |
ID Gen |
Write? |
Rewrite? |
Read-Only MD |
Writable MD |
Listing Options |
Transactions |
|
OTM-API |
? |
? |
? |
? |
? |
? |
? |
? |
|
OTM-FED |
? |
? |
? |
? |
? |
? |
? |
? |
|
OTM-FS |
? |
? |
? |
? |
? |
? |
? |
? |
|
API/Impl |
ID Type |
ID Gen |
Write? |
Rewrite? |
Read-Only MD |
Writable MD |
Listing Options |
Transactions |
|
XAM-API |
? |
? |
? |
? |
? |
? |
? |
? |
|
XAM-CEN |
? |
? |
? |
? |
? |
? |
? |
? |
|
XAM-HON |
? |
? |
? |
? |
? |
? |
? |
? |
|
XAM-IAP |
? |
? |
? |
? |
? |
? |
? |
? |
Other APIs/Implementations of Interest
- DSpace 1 BitstreamStorageManager - Single impl, supports either local filesystem or SRB
- Eclipse - BlobStore- Single impl, maps UUIDs to files on disk
- JAF DataSource - Not a Store API; just models a file with a MIME type
- Jakarta Slide ContentStore - Defunct; has versioning semantics
- Jargon API for SRB and iRODS - Models files and directories, with metadata
- JSPWiki FileSystemProvider - Fedora Repository Impl available; API has versioning semantics.
- OKI Repository OSID - Has container semantics (Assets may contain other assets)
- Plone Large File Management - Several options, but no common interface
- MediaWiki FileStore - PHP source