Legacy Lakesuperior code.

Stefano Cossu 544c7966d2 Update docs; improve stress test script. 6 years ago
data eeee476291 Set up bootstrap script and reuse in test fixtures. 6 years ago
doc 544c7966d2 Update docs; improve stress test script. 6 years ago
etc.skeleton fc07a7628c Large overhaul mostly in support of better resource deletion and 6 years ago
lakesuperior d43e49ce03 Fix issues with PATCH providing FQURI as subject; add test fpr PUTting a 6 years ago
templates 73211cf26c Add homepage template with links to two endpoints; fix missing 6 years ago
tests 544c7966d2 Update docs; improve stress test script. 6 years ago
util fc07a7628c Large overhaul mostly in support of better resource deletion and 6 years ago
.gitignore 2fdc1b902e Initial commit: some boilerplate borrowed from Combine, basic folder structure and documentation. 6 years ago
LICENSE 2fdc1b902e Initial commit: some boilerplate borrowed from Combine, basic folder structure and documentation. 6 years ago
README.md 544c7966d2 Update docs; improve stress test script. 6 years ago
conftest.py eeee476291 Set up bootstrap script and reuse in test fixtures. 6 years ago
fcrepo d49241b86b GUnicorn. 6 years ago
requirements.txt de3e8dbc03 Build minimal requirements list with pipdeptree. 6 years ago
server.py f6d5233884 Refactor triplestore connector to accommodate setup & teardown of test 6 years ago

README.md

LAKEsuperior

LAKEsuperior is an experimental Fedora Repository implementation.

Basic concepts

LAKEsuperior aims at being an uncomplicated, efficient Fedora 4 implementation.

Implementation of the official Fedora API specs (Fedora 5.x and beyond) is not foreseen in the short term, however it may become a natural evolution of this project if it gains support.

Please make sure you read the Delta document for divergences with the official Fedora4 implementation.

Alpha 2 consists of less than 2200 lines of code and strives to maintain a linear, intuitive code structure to foster collaboration. TODO link to tech overview and approach

Installation

Dependencies

  1. A triplestore. Fuseki is the benchmark used so far in development. Other implementations are possible as long as they support RDF 1.1 and SPARQL over HTTP
  2. A message broker supporting the STOMP protocol. If you have a separate instance of official Fedora listening to port 61613, that will do the job
  3. Python 3.5 or greater

Installation steps

  1. Install dependencies as indicated above
  2. Create a virtualenv in a project folder: virtualenv -p <python 3.5+ exec path> <virtualenv folder>
  3. Initialize the virtualenv: source <path_to_virtualenv>/bin/activate
  4. Clone this repo
  5. cd into repo folder
  6. Install dependencies: pip install -r requirements.txt
  7. Copy the etc.skeleton folder to a separate location
  8. Set the configuration folder location in the environment: export FCREPO_CONFIG_DIR=<your config dir location> (alternatively you can add this line to your virtualenv activate script)
  9. Configure the application
  10. Start your triplestore and STOMP broker
  11. Run util/bootstrap.py to initialize the binary and graph stores
  12. Run ./fcrepo for a multi-threaded server or flask run for a single-threaded development server

Production deployment

If you like fried repositories for lunch, deploy before 11AM.

Status and development

LAKEsuperior is in alpha status. Please see the TODO list for a rudimentary road map and status.

Further documentation

The design documents are in the doc/pdf folder. @TODO needs update