# @canvas-js/okra-memory

> Temporary Okra database backed by an in-memory red/black tree

Latest version **0.4.7** (published 2025-03-19) · MIT license · 0 weekly downloads

## Install

```sh
npm install @canvas-js/okra-memory
pnpm add @canvas-js/okra-memory
yarn add @canvas-js/okra-memory
bun add @canvas-js/okra-memory
```

## Health

**Score 40/100 (D)** — status: maintenance-mode.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads; pre 1.0.

Negative: stale; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.4.7 |
| Published | 2025-03-19 |
| First published | 2023-05-04 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 5 |
| Unpacked size | 8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 34 |
| Author | Joel Gustafson |
| Maintainers | joelg, raykyri, rjwebb |

## Links

- npm: https://www.npmjs.com/package/@canvas-js/okra-memory
- Repository: https://github.com/canvasxyz/okra-js
- Homepage: https://github.com/canvasxyz/okra-js#readme
- Issues: https://github.com/canvasxyz/okra-js/issues
- npm.io page: https://npm.io/package/@canvas-js/okra-memory

## Dependencies (5)

- [p-queue](https://npm.io/package/p-queue.md) ^8.1.0
- [uint8arrays](https://npm.io/package/uint8arrays.md) ^5.1.0
- [@canvas-js/okra](https://npm.io/package/@canvas-js/okra.md) ^0.4.7
- [@canvas-js/utils](https://npm.io/package/@canvas-js/utils.md) ^1.0.0
- [functional-red-black-tree](https://npm.io/package/functional-red-black-tree.md) ^1.0.1

## Recent versions

- 0.4.7 (latest) — 2025-03-19
- 0.4.6 — 2024-11-14
- 0.4.5 — 2024-09-08
- 0.4.4 — 2024-06-13
- 0.4.3 — 2024-06-13
- 0.4.2 — 2024-06-12
- 0.4.1 — 2024-06-12
- 0.4.0 — 2024-06-10
- 0.3.0 — 2024-03-25
- 0.2.1 — 2023-09-28
- 0.2.0 — 2023-09-15
- 0.1.1 — 2023-08-20
- 0.1.0 — 2023-08-19
- 0.0.1 — 2023-05-04

## README

# `@canvas-js/okra-memory`

[![NPM version](https://img.shields.io/npm/v/@canvas-js/okra-memory)](https://www.npmjs.com/package/@canvas-js/okra-memory) ![TypeScript types](https://img.shields.io/npm/types/@canvas-js/okra-memory)

## Install

```
npm i @canvas-js/okra-memory
```

## Usage

```ts
import { Tree } from "@canvas-js/okra-memory"

const tree = new Tree()

// ...
```

## API

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

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

    public readonly metadata: Metadata

    public constructor(init?: Partial<Metadata>)

    public close(): Promise<void>
    public clear(): void
    public read<T>(callback: (txn: ReadOnlyTransaction) => Awaitable<T>): Promise<T>
    public write<T>(callback: (txn: ReadWriteTransaction) => Awaitable<T>): Promise<T>
}
```

---
_Source: https://npm.io/package/@canvas-js/okra-memory · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
