summaryrefslogtreecommitdiffstats
path: root/adenosine-pds/plan.txt
diff options
context:
space:
mode:
authorBryan Newbold <bnewbold@robocracy.org>2022-10-28 16:24:24 -0700
committerBryan Newbold <bnewbold@robocracy.org>2022-10-28 16:24:24 -0700
commit8ce259591542af0ba1c17c5435cc8844a9fbed7f (patch)
treec25343a98df2d10058d4016d02266ca6e79e0a3b /adenosine-pds/plan.txt
parentc7ac6c415565a09b2250218ccc53f17bdb01b256 (diff)
downloadadenosine-8ce259591542af0ba1c17c5435cc8844a9fbed7f.tar.gz
adenosine-8ce259591542af0ba1c17c5435cc8844a9fbed7f.zip
plan.txt and TODO file cleanup
Diffstat (limited to 'adenosine-pds/plan.txt')
-rw-r--r--adenosine-pds/plan.txt21
1 files changed, 21 insertions, 0 deletions
diff --git a/adenosine-pds/plan.txt b/adenosine-pds/plan.txt
new file mode 100644
index 0000000..1b55bb7
--- /dev/null
+++ b/adenosine-pds/plan.txt
@@ -0,0 +1,21 @@
+
+PDS proof of concept:
+- ipld sqlite driver importing CAR file
+- MST code to read and mutate state
+- sqlite schema
+- JSON schema type generation (separate crate?)
+- write wrapper which updates MST *and* updates other tables in a transaction
+- did:web thingie?
+- HTTP API handler implementing most endpoints
+
+libraries:
+- `jsonschema` to validate requests and records (rich validation)
+- `schemafy` to codegen serde types for records (ahead of time?)
+- `rusqlite` with "bundled" sqlite for datastore
+- `ipfs-sqlite-block-store` and `libipld` to parse and persist repo content
+- `warp` as async HTTP service
+- `r2d2` to wrap rusqlite (?)
+- pretty_env_logger
+- ??? for CBOR (de)serialization of MST, separate from the IPLD stuff?
+- no good crate for working with CAR files... could rip out this code?
+ https://github.com/n0-computer/iroh/tree/main/iroh-car