Skip to content

Migrate from levelup/leveldown/subleveldown to classic-level #108

@axel-krapotke

Description

@axel-krapotke

Background

ODIN currently uses the deprecated LevelDB stack:

  • levelup (5.0.1)
  • leveldown (6.1.1)
  • subleveldown (6.0.1)
  • abstract-leveldown (7.2.0)

These packages have been superseded by:

  • classic-level (replaces levelup + leveldown)
  • Built-in .sublevel() (replaces subleveldown)

Scope

Files to update

  • src/shared/level/index.js — main DB factory, sublevel creation
  • All consumers of subleveldown and levelup APIs
  • package.json — swap dependencies

API changes

Old (levelup) New (abstract-level)
createReadStream() iterator().all() or for await...of db.iterator()
db.batch([...], callback) await db.batch([...])
subleveldown(db, prefix, opts) db.sublevel(prefix, opts)
Callback-based get/put/del Promise-based get/put/del

Key consideration

The on-disk LevelDB format is identical between old and new APIs. No data migration required — users can update ODIN without losing any data.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions