0.2.0 • Published 10 months ago

@canvas-js/okra-lmdb v0.2.0

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

@canvas-js/okra-node

NPM version TypeScript types

Install

npm i @canvas-js/okra-node

The following targets are supported:

  • x86_64-linux-gnu
  • x86_64-linux-musl
  • aarch64-linux-gnu
  • aarch64-linux-musl
  • x86_64-macos
  • aarch64-macos

Usage

import { Tree } from "@canvas-js/okra-lmdb"

const tree = new Tree("./path/to/data/directory")

await tree.write((txn) => {
  txn.set(new Uint8Array([0, 1, 2]), new Uint8Array([4, 5, 6]))
})

await tree.close()

API

import { Metadata, ReadOnlyTransaction, ReadWriteTransaction, Leaf } from "@canvas-js/okra"

export interface TreeOptions extends Partial<Metadata> {
  mapSize?: number
	databases?: number
}

export declare class Tree {
    public static fromEntries(
      path: string,
      init: TreeOptions,
      entries: AsyncIterable<[Uint8Array, Leaf]>,
    ): Promise<Tree>

    public readonly metadata: Metadata;

    public constructor(path: string, init?: TreeOptions);

    public close(): Promise<void>
    public clear(): Promise<void>
    public build(): Promise<void>
    public resize(mapSize: number): Promise<void>
    public read<T>(callback: (txn: ReadOnlyTransaction) => Awaitable<T>): Promise<T>
    public write<T>(callback: (txn: ReadWriteTransaction) => Awaitable<T>): Promise<T>
}
0.2.0

10 months ago

0.1.4

10 months ago

0.1.3

10 months ago

0.1.5

10 months ago

0.1.2

1 year ago

0.1.1

1 year ago

0.1.0

1 year ago