LevelDB, RocksDB and BoltDB support
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
Direzione di ricerca
Start by locating the registry plugin architecture and reading how existing database integrations are organized. Then assess support for reading LevelDB and RocksDB directories, read-only access by default, byte-oriented key/value views, prefix filtering and range scans, and RocksDB column families. Done means these requirements are covered; the issue names no files or tests, so identify the relevant entry points and validation approach in the project first.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem
None of the embedded key-value stores LevelDB, RocksDB and BoltDB is supported, so inspecting an application's local data means writing a throwaway program. They run in-process with no server, so the only way in is to open the files, the way TablePro opens a SQLite file today. Folds in #524.
Proposed solution
A registry plugin that opens a local store:
- Point at a LevelDB or RocksDB directory, or a BoltDB file. Read-only by default, since these formats hold a single-process lock and opening one under a running app is unsafe. When another process holds the lock, say so plainly instead of waiting on it.
- Keys and values in the grid, with a hex and a text view, since all three stores are byte-oriented.
- Prefix filtering and range scans, since there is no query language to fall back on.
- The sidebar shows column families for RocksDB and buckets, nested ones included, for BoltDB. LevelDB has one flat keyspace.
Reading the files
- LevelDB and RocksDB: link their C APIs as static libraries published through
apple/Libs/, or read the on-disk format (sorted table files, the manifest and the write-ahead log, with their compression) in Swift. The C APIs are the smaller risk. - BoltDB (bbolt, which etcd uses) is Go only, with no C library, but its file is one B+tree of fixed-size pages, small enough to read in Swift.
Open question
Whether writes ever come after the read-only version, and for which store first.
Alternatives considered
A throwaway script per inspection.
Platform
macOS
Related database type
N/A / General
- Lingua principale
- Swift
- Stelle
- 6.2k
- Fork
- 412
- Merge medio
- 3h 56m
- PR unite (30g)
- 669
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di TableProApp/TablePro
-
Linux: Remember Password fails silently when there is no default keyringForse già presa @datlechin l’ha presa oggi. Apertabug platform-linux
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
TableProApp/TablePro#4098 ·
I maintainer di solito rispondono entro 1 giorno
-
bug platform-linux
Difficoltà 2/5 1-3 ore Idoneità per principianti 35/100
TableProApp/TablePro#4101 ·
I maintainer di solito rispondono entro 1 giorno
-
bug platform-linux
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
TableProApp/TablePro#4099 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement platform-macos
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
TableProApp/TablePro#4071 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement platform-macos
Difficoltà 3/5 1-2 giorni Idoneità per principianti 66/100
TableProApp/TablePro#4070 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di TableProApp/TablePro
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
OneBusAway/vehicle-positions#260 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
eliasstravik/herdr-projects#789 · 1 commento ·
-
follow-up needs-triage S3: minor
Difficoltà 1/5 1-3 ore Idoneità per principianti 85/100
manaflow-ai/cmux#38032 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
arkavo-org/ArkavoKit#70 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
vorssaint/vorssaint-utils#3933 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni