summaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
authorTushar Gohad <tusharsg@gmail.com>2014-09-02 06:16:03 +0000
committerTushar Gohad <tusharsg@gmail.com>2014-09-02 06:16:03 +0000
commit3aef6a55cf0b8de019c950c771bb946adf54e941 (patch)
tree2d00db2090618cde75adcc34b3cc86dfda55f533 /README
parente4374836fc64a9ff3cba5a5c75968d2c138371a2 (diff)
downloadliberasurecode-3aef6a55cf0b8de019c950c771bb946adf54e941.tar.gz
README edited online with Bitbucket
Diffstat (limited to 'README')
-rw-r--r--README105
1 files changed, 68 insertions, 37 deletions
diff --git a/README b/README
index 0c4b583..fda1f55 100644
--- a/README
+++ b/README
@@ -1,38 +1,55 @@
-## Introduction
-
+```
. . .
| o | |
| . |.-. .-. .--..-. .--.. . .--..-. .-..-. .-.| .-.
| | | )(.-' | ( ) `--.| | | (.-'( ( )( |(.-'
`--' `-'`-' `--'' `-'`-`--'`--`-' `--'`-'`-' `-'`-`--'
+```
+
+liberasurecode is an Erasure Code API library written in C with pluggable Erasure Code backends.
+
+----
+
+Highlights
+==========
+
+ * Unified Erasure Coding interface for common storage workloads.
-liberasurecode is an Erasure Code API library written in C. The goal of
-this project is to provide a unified Erasure Coding interface with
-'pluggable' Erasure Code backends.
+ * Pluggable Erasure Code backends - As of v0.9.10, liberasurecode supports 'Jerasure' (Reed-Solomon, Cauchy), 'Flat XOR HD' backends. A template 'NULL' backend is implemented to help future backend writers. Also on the horizon is the support for - Intel Storage Acceleration Library (ISA-L) EC backend.
-As of v0.9.10, liberasurecode supports 'Jerasure' (Reed-Solomon, Cauchy),
-'Flat XOR HD' backends. A template 'NULL' backend is implemented to help
-future backend writers.
+ * True 'plugin' architecture - liberasurecode uses Dynamically Loaded (DL) libraries to realize a true 'plugin' architecture. This also allows one to build liberasurecode indepdendent of the Erasure Code backend libraries.
-liberasurecode is designed around Dynamically Loaded (DL) libraries to
-realize a true 'plugin' architecture. This also allows one to build
-liberasurecode indepdendent of the Erasure Code backend libraries.
+ * Cross-platform - liberasurecode is known to work on Linux (Fedora/Debian flavors), Solaris, BSD and Darwin/Mac OS X.
-liberasurecode is known to work on Linux (Fedora/Debian flavors), Solaris,
-BSD and Darwin/Mac OS X.
+ * Community support - Developed by Erasure Code authority Kevin Greenan, liberasurecode is an actively maintained open-source project with growing community involvement (Openstack Swift, Ceph, PyECLib).
-liberasurecode is distributed under the terms of the BSD license.
+----
-## Users of the project
+License
+==========
-PyECLib - Python EC library: https://pypi.python.org/pypi/PyECLib
-Openstack Swift Object Store - https://wiki.openstack.org/wiki/Swift
+liberasurecode is distributed under the terms of the **BSD** license.
-## liberasurecode Frontend API
+----
+Active Users
+====================
+
+ * PyECLib - Python EC library: https://pypi.python.org/pypi/PyECLib
+ * Openstack Swift Object Store - https://wiki.openstack.org/wiki/Swift
+
+----
+
+liberasurecode API Definition
+=============================
+----
+
+Erasure Coding Backend Definitions
+-----------------------------------
+
+```
/* =~=*=~==~=*=~==~=*=~= Supported EC backends =~=*=~==~=*=~==~=*=~==~=*=~== */
-<code>
typedef enum {
EC_BACKEND_NULL = 0,
EC_BACKEND_JERASURE_RS_VAND = 1,
@@ -41,8 +58,6 @@ typedef enum {
EC_BACKENDS_MAX,
} ec_backend_id_t;
-#ifndef EC_BACKENDS_SUPPORTED
-#define EC_BACKENDS_SUPPORTED
/* Supported EC backends */
static const char *ec_backend_names[EC_BACKENDS_MAX] = {
"null",
@@ -50,9 +65,6 @@ static const char *ec_backend_names[EC_BACKENDS_MAX] = {
"jerasure_rs_cauchy",
"flat_xor_hd",
};
-#endif // EC_BACKENDS_SUPPORTED
-
-</code>
/* ~=*=~==~=*=~= EC Fragment metadata - supported checksum types ~=*=~==~=*=~ */
@@ -64,16 +76,19 @@ typedef enum {
CHKSUM_TYPES_MAX,
} ec_checksum_type_t;
-#ifndef EC_CHKSUM_TYPES_SUPPORTED
-#define EC_CHKSUM_TYPES_SUPPORTED
-/* Supported EC backends */
+/* Supported checksum types */
static const char *ec_chksum_types[CHKSUM_TYPES_MAX] = {
"none",
"crc32",
"md5",
};
-#endif // EC_CHKSUM_TYPES_SUPPORTED
+```
+----
+Erasure Coding User Arguments
+-----------------------------
+
+```
/* =~=*=~==~=*=~== EC Arguments - Common and backend-specific =~=*=~==~=*=~== */
/**
@@ -100,7 +115,14 @@ struct ec_args {
* future backend args */
ec_checksum_type_t ct; /* fragment checksum type */
};
+```
+
+---
+
+Erasure Coding API Functions
+----------------------------
+```
/* =~=*=~==~=*=~== liberasurecode frontend API functions =~=*=~==~=~=*=~==~= */
/* liberasurecode frontend API functions */
@@ -347,7 +369,12 @@ int liberasurecode_get_aligned_data_size(int desc, uint64_t data_len);
* @return minimum data length length, or -error code on error
*/
int liberasurecode_get_minimum_encode_size(int desc);
+```
+----
+Erasure Coding API Error Codes
+------------------------------
+```
/* ==~=*=~===~=*=~==~=*=~== liberasurecode Error codes =~=*=~==~=~=*=~==~== */
/* Error codes */
@@ -362,8 +389,10 @@ typedef enum {
/* =~=*=~==~=*=~==~=*=~==~=*=~===~=*=~==~=*=~===~=*=~==~=*=~===~=*=~==~=*=~= */
```
-## Code organization
+----
+Code organization
+=================
```
├── include
│   ├── erasurecode
@@ -414,16 +443,18 @@ typedef enum {
├── INSTALL
├── ChangeLog
```
+---
-## Build
+Build and Install
+=================
To build the liberasurecode repository, perform the following from the
top-level directory:
-`$ ./autogen.sh`
-`$ ./configure`
-`$ make`
-`$ make test`
-`$ sudo make install`
-
--- \ No newline at end of file
+```
+ $ ./autogen.sh
+ $ ./configure
+ $ make
+ $ make test
+ $ sudo make install
+```