Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

jawn as a wrapper around levelup and hypercore

Aperta
#15 8 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
20/100
Tipo di issue
Funzionalità
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
javascript

Direzione di ricerca

Non vengono indicati file, test o punti di ingresso. Inizia esaminando il wrapper dat-tables proposto per levelup e hypercore, quindi chiarisci i limiti dell’MVP e i criteri di accettazione per importazione/esportazione, registrazione del feed, indicizzazione e sincronizzazione prima dell’implementazione.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

discussions index/db

@ogd @mafintosh as I spec out the basic features for dat-tables, it looks like our hypercore feeds will basically contain a log of CREATE, UPDATE, and DELETE operations. I want to avoid writing an API that unnecessarily duplicates the leveldown API or (gadzooks) ending up with yet another SQL-ish API that nobody wanted. Would it be easier to make levelup more central in the operations and implement a sort of 'smart' log that follows 'put' and 'delete' events emitted by levelup, writing the changes to a hypercore feed?

Assumptions

The key features for an MVP of dat-tables are:

  • provide an api for importing & exporting data
  • write imported data to a hypercore feed
  • track those data in an index (for lookups and in order to distinguish between 'adds' and 'updates')

I had been thinking of the index as a tail of the feed -- always reading operations from the feed (even locally) and applying them to the index accordingly -- but I think that was the wrong approach.

dat-tables as a wrapper around levelup and hypercore

Note: The levelup database always represents the HEAD of your data.

  • Wrap levelup: Provide an import/export api that's a transparent wrapper around the levelup api
  • Log levelup events to hypercore: During import operations, follow 'put' and 'delete' events emitted by levelup. Write all changes to a hypercore feed (ignore puts that didn't change anything)
  • Tail the hypercore feed when syncing: When syncing changes from other hypercore hosts, apply those changes from the feed directly to levelup

This lets us focus on making dat-tables support operations like 'checking out' old versions and running diffs against old versions of the data. It also lets us focus on refining the API to support target use cases.

Does this make sense? Am I missing anything?

Lingua principale
JavaScript
Stelle
46
Fork
8
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di CodeForPhilly/jawn

Tutte le issue di CodeForPhilly/jawn

Issue simili

Altre issue su JavaScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.