Skip to content

Commit 2309329

Browse files
committed
Update readme
1 parent 14b4f69 commit 2309329

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

README.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,12 +74,15 @@ The CLI uses various libraries to implement
7474
* **be the best performing implementation**
7575
* use Rust's type system to optimize for work not done without being hard to use
7676
* use multiple cores when available
77+
* make it easy to control concurrency and parallelism
7778
* **assure on-disk consistency**
7879
* assure reads never interfere with concurrent writes
7980
* assure multiple concurrent writes don't cause trouble
8081
* **take shortcuts, but not in quality**
81-
* binaries my use `anyhow::Error` exhaustively, knowing that these errors are solely user-facing.
82-
* internationalization is nothing we are concerned with right now
82+
* binaries may use `anyhow::Error` exhaustively, knowing these errors are solely user-facing.
83+
* libraries use light-weight custom errors implemented using `quick-error`.
84+
* internationalization is nothing we are concerned with right now.
85+
* IO errors due to insufficient amount of open file handles don't always lead to operation failure
8386

8487
## Non-Goals
8588

@@ -89,8 +92,7 @@ The CLI uses various libraries to implement
8992
* **be incompatible to git**
9093
* the on-disk format must remain compatible, and we will never contend with it.
9194
* **use async IO everywhere**
92-
* it's too young and makes things so much more difficult right now.
93-
* (it's considered on option as upgrade when async is stabilized)
95+
* but don't tie it to `async-std` or `tokio`
9496

9597
## Roadmap to Future
9698

@@ -110,13 +112,13 @@ Provide a CLI to for the most basic user journey:
110112
* **test-first development**
111113
* protect against regression and make implementing features easy
112114
* user docker to test more elaborate user interactions
113-
* keep it practical, knowing that the Rust compiler already has your back
115+
* keep it practical, knowing the Rust compiler already has your back
114116
for the mundane things, like unhappy code paths.
115117
* *use git itself* as reference implementation, and use their test-cases and fixtures where
116118
appropriate
117119
* *use libgit2* test fixtures and cases where appropriate
118120
* **safety first**
119-
* handle all errors, never unwrap
121+
* handle all errors, never unwrap.
120122
* provide an error chain and make it easy to understand what went wrong.
121123
* **strive for an MVP and version 1.0 fast...**
122124
* ...even if that includes only the most common usecases.

0 commit comments

Comments
 (0)