Skip to content

Commit

Permalink
Merge pull request #90 from scossu/development
Browse files Browse the repository at this point in the history
Development
  • Loading branch information
scossu committed Apr 9, 2019
2 parents 8127757 + ff27a16 commit 4879432
Show file tree
Hide file tree
Showing 136 changed files with 7,062 additions and 84,547 deletions.
25 changes: 21 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -106,8 +106,25 @@ venv.bak/
# Pytest
.pytest_cache/

# Default LAKEsuperior data directories
/data
#/lakesuperior/store/base_lmdb_store.c
#/lakesuperior/store/ldp_rs/lmdb_triplestore.c
# Default Lakesuperior data directories
lakesuperior/data/ldprs_store
lakesuperior/data/ldpnr_store

# Cython business.
/cython_debug
/lakesuperior/store/*.c
/lakesuperior/store/*.html
/lakesuperior/store/ldp_rs/*.c
/lakesuperior/store/ldp_rs/*.html
/lakesuperior/model/*.c
/lakesuperior/model/*/*.html
/lakesuperior/model/*/*.c
/lakesuperior/model/*.html
/lakesuperior/util/*.c
/lakesuperior/util/*.html
!ext/lib

# Vim CTags file.
tags

!.keep
12 changes: 12 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[submodule "ext/lmdb"]
path = ext/lmdb
url = https://github.com/LMDB/lmdb.git
[submodule "ext/tpl"]
path = ext/tpl
url = https://github.com/troydhanson/tpl.git
[submodule "ext/spookyhash"]
path = ext/spookyhash
url = https://github.com/centaurean/spookyhash.git
[submodule "ext/collections-c"]
path = ext/collections-c
url = https://github.com/srdja/Collections-C.git
5 changes: 5 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,19 @@ language: python
matrix:
include:
- python: 3.6
dist: xenial
sudo: true
- python: 3.7
dist: xenial
sudo: true

install:
- pip install Cython==0.29.6 cymem
- pip install -e .
script:
- python setup.py test
env:
- CFLAGS="-std=c99"

deploy:
provider: pypi
Expand Down
5 changes: 4 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
FROM python:3.6
FROM python:3.7
MAINTAINER Michael B. Klein <michael.klein@northwestern.edu>
RUN mkdir -p /usr/local /data
WORKDIR /usr/local
ADD . lakesuperior
WORKDIR /usr/local/lakesuperior
RUN git submodule update --init
RUN [[ -f lakesuperior/model/base.c ]] || \
pip install -r requirements_dev.txt
RUN pip install -e .
RUN cp ./docker/etc/* ./lakesuperior/etc.defaults/
CMD ./docker/docker_entrypoint
Expand Down
14 changes: 12 additions & 2 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,7 +1,17 @@
include README.rst
include LICENSE
include fcrepo
graft ext
include bin/*
include ext/lmdb/libraries/liblmdb/mdb.c
include ext/lmdb/libraries/liblmdb/lmdb.h
include ext/lmdb/libraries/liblmdb/midl.c
include ext/lmdb/libraries/liblmdb/midl.h
include ext/collections-c/src/*.c
include ext/collections-c/src/include/*.h
include ext/tpl/src/tpl.c
include ext/tpl/src/tpl.h
include ext/spookyhash/src/*.c
include ext/spookyhash/src/*.h

graft lakesuperior/data/bootstrap
graft lakesuperior/endpoints/templates
graft lakesuperior/etc.defaults
45 changes: 23 additions & 22 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,43 +3,44 @@ Lakesuperior

|build status| |docs| |pypi| |codecov|

Lakesuperior is an alternative `Fedora
Repository <http://fedorarepository.org>`__ implementation.
Lakesuperior is a Linked Data repository software. It is capable of storing and
managing large volumes of files and their metadata regardless of their
format, size, ethnicity, gender identity or expression.

Fedora is a mature repository software system historically adopted by
major cultural heritage institutions. It exposes an
`LDP <https://www.w3.org/TR/ldp-primer/>`__ endpoint to manage
any type of binary files and their metadata in Linked Data format.
Lakesuperior is an alternative `Fedora Repository
<http://fedorarepository.org>`__ implementation. Fedora is a mature repository
software system historically adopted by major cultural heritage institutions
which extends the `Linked Data Platform <https://www.w3.org/TR/ldp-primer/>`__
protocol.

Guiding Principles
------------------

Lakesuperior aims at being an uncomplicated, efficient Fedora 4
implementation.
Lakesuperior aims at being a reliable and efficient Fedora 4 implementation.

Its main goals are:

- **Reliability:** Based on solid technologies with stability in mind.
- **Efficiency:** Small memory and CPU footprint, high scalability.
- **Ease of management:** Tools to perform monitoring and maintenance
included.
- **Ease of management:** Tools to perform migration, monitoring and
maintenance included.
- **Simplicity of design:** Straight-forward architecture, robustness
over features.

Key features
------------

- Drop-in replacement for Fedora4
- Very stable persistence layer based on
`LMDB <https://symas.com/lmdb/>`__ and filesystem. Fully
ACID-compliant writes guarantee consistency of data.
- Term-based search and SPARQL Query API + UI
- No performance penalty for storing many resources under the same
container, or having one resource link to many URIs
- Extensible provenance metadata tracking
- Multi-modal access: HTTP (REST), command line interface and native Python
API.
- Fits in a pocket: you can carry 50M triples in an 8Gb memory stick.
- Stores binary files and RDF metadata in one repository.
- Multi-modal access: REST/LDP, command line and native Python API.
- (`almost <fcrepo4_deltas>`_) Drop-in replacement for Fedora4
- Very stable persistence layer based on
`LMDB <https://symas.com/lmdb/>`__ and filesystem. Fully
ACID-compliant writes guarantee consistency of data.
- Term-based search and SPARQL Query API + UI
- No performance penalty for storing many resources under the same
container, or having one resource link to many URIs
- Extensible provenance metadata tracking
- Fits in a pocket: you can carry 50M triples in an 8Gb memory stick.

Installation & Documentation
----------------------------
Expand All @@ -50,7 +51,7 @@ With Docker::
cd lakesuperior
docker-compose up

With pip (assuming you are familiar with it)::
With pip (requires a C compiler to be installed)::

pip install lakesuperior

Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion docker/docker_entrypoint
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ coilmq &
if [ ! -d /data/ldpnr_store ] && [ ! -d /data/ldprs_store ]; then
echo yes | lsup-admin bootstrap
fi
exec ./fcrepo
exec fcrepo

0 comments on commit 4879432

Please sign in to comment.