LevelDB, RocksDB and BoltDB support
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 35/100
Piste de recherche
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.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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
- Langage dominant
- Swift
- Étoiles
- 6.2k
- Forks
- 412
- Merge moyen
- 3 h 56 min
- PR mergées (30 j)
- 669
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de TableProApp/TablePro
-
Linux: Remember Password fails silently when there is no default keyringPeut-être pris @datlechin l’a pris aujourd’hui. Ouvertebug platform-linux
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
TableProApp/TablePro#4098 ·
Les mainteneurs répondent en général sous 1 jour
-
bug platform-linux
Difficulté 2/5 1-3 heures Accessibilité débutants 35/100
TableProApp/TablePro#4101 ·
Les mainteneurs répondent en général sous 1 jour
-
bug platform-linux
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
TableProApp/TablePro#4099 · 3 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
enhancement platform-macos
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
TableProApp/TablePro#4071 ·
Les mainteneurs répondent en général sous 1 jour
-
enhancement platform-macos
Difficulté 3/5 1-2 jours Accessibilité débutants 66/100
TableProApp/TablePro#4070 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de TableProApp/TablePro
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 83/100
OneBusAway/vehicle-positions#260 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 85/100
eliasstravik/herdr-projects#789 · 1 commentaire ·
-
follow-up needs-triage S3: minor
Difficulté 1/5 1-3 heures Accessibilité débutants 85/100
manaflow-ai/cmux#38032 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 67/100
arkavo-org/ArkavoKit#70 ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
vorssaint/vorssaint-utils#3933 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours