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
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(replaceslevelup+leveldown).sublevel()(replacessubleveldown)Scope
Files to update
src/shared/level/index.js— main DB factory, sublevel creationsubleveldownandlevelupAPIspackage.json— swap dependenciesAPI changes
createReadStream()iterator().all()orfor await...of db.iterator()db.batch([...], callback)await db.batch([...])subleveldown(db, prefix, opts)db.sublevel(prefix, opts)get/put/delget/put/delKey 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