Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jvnn/c3res
Content-addressed Cryptographically-secured Capability-based REsource Store
https://github.com/jvnn/c3res
Last synced: 3 months ago
JSON representation
Content-addressed Cryptographically-secured Capability-based REsource Store
- Host: GitHub
- URL: https://github.com/jvnn/c3res
- Owner: jvnn
- License: eupl-1.2
- Created: 2021-02-08T16:03:46.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2023-08-09T19:19:47.000Z (about 1 year ago)
- Last Synced: 2024-06-21T17:09:02.560Z (5 months ago)
- Language: Clojure
- Size: 127 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
- awesome-starred - jvnn/c3res - Content-addressed Cryptographically-secured Capability-based REsource Store (others)
README
# C3RES
C3RES is a project for allowing distributed and secure storage of private data.
The name stands for "Content-addressed Cryptographically-secured
Capability-based REsource Store". More info at [c3res.org](http://c3res.org).## General information
This is an early prototype implementation of the idea presented on the
[C3RES](http://c3res.org) website. It consists of a client and a server where
the client acts as an access point to the data stored fully encrypted either in
a local cache or on the server. Only the client has access to the encryption
keys (via a capability system) and all the data stored on the server can be
exposed without compromising the contents (except for a small amount of
metadata which is stored in a database on the server).A simple architecture schetchup (mostly still unimplemented...):
```
+--------------+ +--------------+
| SHARD SERVER | <-- federation --> | SHARD SERVER |
+--------------+ +--------------+
|
.
.
.
| ----+
+---------------+ |
| CLIENT DAEMON | |
+---------------+ |
| | | |
+-------------+ | +------------+ `
| TERMINAL UI | | | HTTP QUERY | }-- On a local machine
| / CLI | | +------------+ ,
+-------------+ | |
+-------+ |
| GUI | |
+-------+ |
----+
```## Why ClojureScript??
Three reasons: I like Clojure, the nodejs ecosystem has lots of similar
projects (and thus libraries), and the whole client is one day supposed to also
run in a browser.That said, the main purpose of this prototype is to act as a proof of concept
and help refine that concept further based on real life experiences when
implementing it. Nodejs and ClojureScript itself aren't likely a very good fit
for a serious server implementation, but the main goal here is to end up with a
system that works, which can then be formalized in a specification document.Based on that specification further implementations should then be possible and
the current plan is to replace at least the server component later with a
native implementation written in a statically typed, fast, and memory safe
language like Rust, Nim, or even modern C++.