summaryrefslogtreecommitdiffstats
path: root/rust/TODO
blob: 1487ea14e8fa8b3e6af2a8a0613d57d71046aea7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

correctness
- changelog sequence without gaps

huge compile times:
- iron not small, but mostly reasonable deps
- does macaroon need both rustc-serialize and serde?
- sentry big but almost all "modern" hyper (0.12)
- slog has a lot of duplication (crossbeam)
- duplicated libs: 3 syn, 4 uuid, 3 crossbeam (etc), 2 hyper, 2 iron (wait,
  what?), 3x serde, 4x rand, 2x error-chain
    => rg '^name =' Cargo.lock  | uniq -cd | sort -n
- try: removing deps from fatcat-api-spec
- uuid: could now switch to v0.7, needs code changes

refactor:
- consistent `conn` and `context` orders in _handler() functions

edit lifecycle
- per-edit extra JSON

- account helper tool: set admin bit

later:
- "prev_rev" required in updates
- tried using sync::Once to wrap test database initilization (so it would only
  run migrations once), but it didn't seem to work, maybe I had a bug or it
  didn't compile?
    => could also do a global mutex: https://github.com/SergioBenitez/Rocket/issues/697
- could some of the EntityCrud trait macro stuff be re-implemented as an enum type?
- pure-rust "benchmark" scripts that hit, eg, lookups and batch endpoints
    => criterion.rs benchmarking
- try new hyper/openapi3 codegen branch
- refactor logging; simple env-logger-pretty
- test using hash indexes for some UUID column indexes, or at least sha1 and
  other hashes (abstracts, file lookups)