summaryrefslogtreecommitdiffstats
path: root/adenosine-pds
diff options
context:
space:
mode:
Diffstat (limited to 'adenosine-pds')
-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