HarperFast / HarperFast/fulltext

Define the TypeScript façade, packed native ABI, errors, and lifecycle contract

Open
#14 0 comments 0 reactions 1 assignee Claimed by @kylebernhardy View on GitHub
area:api area:native
Dominant language
Rust
Stars
0
Forks
0
Avg merge
3h 53m
Merged PRs (30d)
18

Description

## Outcome

Expose a stable TypeScript API over one native storage backend and a versioned packed ABI.

## Acceptance criteria

- Type and document schema, packed mutation, commit, opaque publication/readback, search/pagination, results, status, cancellation and close.
- One native call represents a batch/search/publication/lifecycle operation; buffer ownership and bounds are explicit.
- Keep native low-level exports private and generic checkpoint content opaque to the wrapper.
- Typed errors and ABI validation preserve actionable context without exposing source data or unsafe native details.
- Close is asynchronous/idempotent, rejects new work and deterministically settles admitted work; worker loss/deadline does not prove rollback or quiescence.
- Preserve existing standalone commit/reload compatibility while specifying checkpoint interactions.
- Version Rust/TypeScript codec additions together and test packed-artifact parity.
- Document panic containment limits; caught panics are not process isolation.
- Remove the experimental hosted storage factory from the supported API; Harper uses the native facade.

## Design

[Native Tantivy storage and Harper derived indexes](https://github.com/HarperFast/fulltext/blob/codex/native-storage-design/docs/native-storage-integration.md). Native Tantivy files are the only delivery target for standalone use and Harper. Proposed APIs and integration gates are not claims of completed implementation.

Comment generated by kAIle (GPT-6)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.