Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ngerakines/camlispp
https://github.com/ngerakines/camlispp
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/ngerakines/camlispp
- Owner: ngerakines
- License: mit
- Created: 2013-03-01T17:19:42.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2013-03-15T19:30:48.000Z (almost 12 years ago)
- Last Synced: 2024-05-01T13:43:22.320Z (8 months ago)
- Language: C++
- Homepage: ngerakines.github.com/camlispp/
- Size: 520 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# About
The camlispp project provides camlistore services and components written in c++.
For more information on what camlistore is and how it works, see: [https://camlistore.org/](https://camlistore.org/)
# Goals and Motivation
This project was kicked off to get me back into the world of c++. I've been following the camlistore project for a little while now and believe that some great things will come from it.
# Roadmap
1. Implement a blob storage daemon. (in-progress)
1. Implement a schema daemon.
1. Implement the index-search daemon.# Blob Storage Daemon
## Options and Configuration
Some compile-time options include:
* **ENABLE_DEBUG**: Enables general debugging. Without this, very little will be logged.
* **ENABLE_DUMP**: Enables extra dumping of internal objects (blob index, blob, blob key, etc).
* **ENABLE_MD5**: Enables use of md5 to has blobs, enabled by default. Can be turned off because md5 isn't that strong.
* **ENABLE_STATIC**: Enables use of static site, mostly for debugging. This is enabled by default.
* **ENABLE_DEBUG_LOAD**: Enables a feature that will attempt to create blobs for all files in a given directory.Some run-time options include:
```
--help produce help message
--directory arg The directory to save blobs in and serve them from
--ip arg The ip address to bind to
--port arg The port to serve requests on
--threads arg The number of threads to use
--static_directory arg The directory to serve static files from
--load_directory arg The directory to load data from
```## Roadmap / TODO
1. Create base HTTP server (done)
1. Integrate cityhash (done)
1. Support retreival of blobs by hash type and hash. (done)
1. Support stat (done)
1. Support upload (done)
1. Support upload resume (skipped)
1. Support blob enumeration (done)
1. Add md5 and sha hashing (done)
1. Improve blob storage (disk backed) and index storage (disk backed) (done)
1. Support p2p sync/replication operations (done)
1. Support sharding and conditional blob routing (skipped)
1. Support large files (skipped)
1. Support daemon configuration files
1. Support static site, mostly for debugging (done)
1. Support accept-encoding http header## Testing
$ ./blobserver/src/blobserver --port 8081 --directory /home/ngerakines/tmp/source/data1/ --load_directory /home/ngerakines/tmp/source --sync http://127.0.0.1:8082 --sync-delay 30
$ ./blobserver/src/blobserver --port 8082 --directory /home/ngerakines/tmp/source/data2/
# Errata
Please use the following astyle config when contributing:
alias style='astyle -A2 --indent=tab -C -N -Y -f -F -xd -j -J -p -H -n'
To enable object dumping for debug, use the following options when generating build files:
cmake . -DENABLE_DEBUG=ON -DENABLE_DUMP=ON -DENABLE_DEBUG_LOAD=ON
# License
Copyright (c) 2013 Nick Gerakines
This project and its contents are open source under the MIT license.