LevelDB, RocksDB and BoltDB support
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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
- Lenguaje dominante
- Swift
- Estrellas
- 6.2k
- Forks
- 412
- Merge medio
- 3 h 56 min
- PR fusionados (30 d)
- 669
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de TableProApp/TablePro
-
Linux: Remember Password fails silently when there is no default keyringPosiblemente ocupada @datlechin la tomó hoy. Abiertobug platform-linux
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
TableProApp/TablePro#4098 ·
Los mantenedores suelen responder en 1 día
-
bug platform-linux
Dificultad 2/5 1-3 horas Aptitud para principiantes 35/100
TableProApp/TablePro#4101 ·
Los mantenedores suelen responder en 1 día
-
bug platform-linux
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
TableProApp/TablePro#4099 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
enhancement platform-macos
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
TableProApp/TablePro#4071 ·
Los mantenedores suelen responder en 1 día
-
enhancement platform-macos
Dificultad 3/5 1-2 días Aptitud para principiantes 66/100
TableProApp/TablePro#4070 ·
Los mantenedores suelen responder en 1 día
Todos los issues de TableProApp/TablePro
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
OneBusAway/vehicle-positions#260 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
eliasstravik/herdr-projects#789 · 1 comentario ·
-
follow-up needs-triage S3: minor
Dificultad 1/5 1-3 horas Aptitud para principiantes 85/100
manaflow-ai/cmux#38032 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
arkavo-org/ArkavoKit#70 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
vorssaint/vorssaint-utils#3933 · 1 comentario ·
Los mantenedores suelen responder en 2 días