aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md8
-rw-r--r--TODO14
2 files changed, 10 insertions, 12 deletions
diff --git a/README.md b/README.md
index 0a47b72..f330933 100644
--- a/README.md
+++ b/README.md
@@ -9,7 +9,7 @@
this is a poor / partial / non-compliant dat implementation in rust.
-it will eat-your-data.
+it will eat-your-data!
### Status
@@ -18,10 +18,10 @@ it will eat-your-data.
- [ ] SLEEP v2 files and registers
- [x] read/write file headers
- [x] read/write file chunks as raw bytes
- - [ ] pread/pwrite file chunks without seeking
+ - [x] pread/pwrite file chunks without seeking
- [x] read data entries by index
- [x] append data entries
- - [ ] verify entire register (signatures and merkel tree)
+ - [x] verify entire register (signatures and merkel tree)
- [ ] bitfields
- [ ] Drive metadata and files
- [x] read full history ("log")
@@ -54,6 +54,7 @@ A few simplifications were made compared to the regular dat client:
- Tracking of remote node state (bitfields) is minimized as much as possible.
- Almost everything is synchronous and single-threaded, so only a single remote
node connection at a time is allowed.
+- discovery (DHT, multicast-DNS, etc) is not implemented.
### Dependencies
@@ -62,7 +63,6 @@ Notable Rust Libraries:
- `sodiumoxide` signing (Ed25519) and network stream encryption (XSalsa20)
- `integer-encoding` for simple "varints"
- `rust-protobuf` for protobuf messages
-- ??? for Kademlia Mainline DHT
While (temporarily?) using Cargo's `[patch]` feature to patch sodiumoxide,
builds require Rust 1.21 (stable circa Oct 2017).
diff --git a/TODO b/TODO
index 7137e1b..e453f4a 100644
--- a/TODO
+++ b/TODO
@@ -1,11 +1,9 @@
next:
-- worked (manual) example of signature generation with 3x nodes
-- verifying register (sans bitfield)
+- file check in/out
+- drive children/tree stuff
- bitfield stuff (un-indexed)
https://docs.rs/bit_field/0.8.0/bit_field/trait.BitArray
-- appending to drive
-- network infra
- secret_key-in-home helpers (read/write)
- 'geniza clone' command
- 'geniza checkout' command
@@ -44,15 +42,14 @@ geniza: command line, swarm
Backburner:
-- man
+- manpage
- slog for logging
- disable sodiumoxide serde feature
-- sodiumoxcide static link
+- sodiumoxide static link
https://safenetforum.org/t/building-a-non-dynamically-linked-executable-of-safe-vault/9811/6
- SLEEP API: should just be empty string for algo-name, not Option<>
- I have the SLEEP/register naming wrong... sleep refers to the directory?
-- refactor to something pwrite based for file I/O
- https://doc.rust-lang.org/std/os/unix/fs/trait.FileExt.html
+- portable positional file I/O
https://github.com/vasi/positioned-io
- mmap
https://docs.rs/scroll/0.7.0/scroll/
@@ -63,3 +60,4 @@ Backburner:
- refactor key generation into generic/re-usable function
- turn magic numbers in tree nodes into declared (public?) constants
- root_nodes as an iterator? (vs returning a Vec)
+- pretty terminal output: https://crates.io/crates/colored