Skip to main content

nullain-sdk-search

Local full-text search engine for nullain-agent-sdk: a pure-Rust core (nullain-search-core, tantivy-backed BM25 search) plus thin PyO3 bindings (nullain-search-py, importable as nullain_search).

v0.1 scope: index local text files, BM25 search, fetch by source. No web search, no vector/semantic search, no file watching or incremental indexing — see nullain-search-core/src/index.rs for what's covered.

This repo does not implement nullain.ports.search.SearchProvider itself — that async Protocol lives in the sibling nullain-agent-sdk repo. A future RustSearchAdapter there wraps this package's synchronous calls in asyncio.to_thread.

Build locally

Requires Rust (stable) and Python 3.12+.

cd nullain-search-py
pip install maturin
maturin develop   # builds the extension and installs it into your active venv

Then in Python:

import nullain_search

index = nullain_search.SearchIndex()
index.index("the quick brown fox", source="a.txt")
index.index_directory("./some/workspace")  # convenience: recursive text-file scan

hits = index.query("fox", limit=5)
for hit in hits:
    print(hit.source, hit.score, hit.snippet)

print(index.fetch("a.txt"))

Tests

cargo test --workspace       # core + binding crate unit/integration tests
cargo clippy --workspace -- -D warnings
cargo fmt --check

Layout

  • nullain-search-core/ — pure Rust, zero Python dependency. The BM25 indexing/search engine.
  • nullain-search-py/ — PyO3 bindings, published as the nullain-search wheel (abi3-py312, one wheel per platform regardless of Python 3.12+ patch version).

Metadata

Release files for nullain-search 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nullain-search 0.1.0
File Size Uploaded Provenance Actions
nullain_search-0.1.0.tar.gz 17.8 kB With provenance Details for nullain_search-0.1.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for nullain-search 0.1.0
File Actions
nullain_search-0.1.0-cp312-abi3-win_amd64.whl CPython 3.12 abi3 Windows x86-64 Details for nullain_search-0.1.0-cp312-abi3-win_amd64.whl
nullain_search-0.1.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 abi3 Linux glibc 2.17+ x86-64 Details for nullain_search-0.1.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
nullain_search-0.1.0-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 abi3 Linux glibc 2.17+ ARM64 Details for nullain_search-0.1.0-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
nullain_search-0.1.0-cp312-abi3-macosx_11_0_arm64.whl CPython 3.12 abi3 macOS 11.0+ ARM64 Details for nullain_search-0.1.0-cp312-abi3-macosx_11_0_arm64.whl
nullain_search-0.1.0-cp312-abi3-macosx_10_12_x86_64.whl CPython 3.12 abi3 macOS 10.12+ x86-64 Details for nullain_search-0.1.0-cp312-abi3-macosx_10_12_x86_64.whl

Total release size: 11.8 MB

Release files / nullain_search-0.1.0.tar.gz

Download URL nullain_search-0.1.0.tar.gz
Size 17.8 kB
Tags Source
SHA-256 checksum
How to use checksums
ac6d238103b6cdd28363ce997bb52dffe3353505e6785bdb77b2f98d44e6ebdd
BLAKE2b-256 checksum
How to use checksums
3e9008a84a1c80c497fa91d2a42727ca284777631202ed7c5d96c347e872f5c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 12, 2026.

Transparency log

Release files / nullain_search-0.1.0-cp312-abi3-win_amd64.whl

Download URL nullain_search-0.1.0-cp312-abi3-win_amd64.whl
Size 2.1 MB
Tags CPython 3.12 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
67d6588b66bd4149eb1f6a50f5a2aedae23c0afdf6d7b11af0ff09289751ee2e
BLAKE2b-256 checksum
How to use checksums
0130b198a7a64784d24d22b233503faa653874b56bd760abe30422858c960f3e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 12, 2026.

Transparency log

Release files / nullain_search-0.1.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL nullain_search-0.1.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.5 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
6b32300d289625637569a0bc694d045e5d634afb50d8030984b72db36cc3e2b3
BLAKE2b-256 checksum
How to use checksums
8024fcf6307188bc7f9583700e2a31cfd3915970e889fda9742ee6c81c74bd95
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 12, 2026.

Transparency log

Release files / nullain_search-0.1.0-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL nullain_search-0.1.0-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 2.5 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
a312485cc0b585a1d92d762dec00f7cc8cb1640c2500d56e67bdce8cd3ce0907
BLAKE2b-256 checksum
How to use checksums
c222c8144967495d2bc15f6f36e45e1be3ffb687db6d52a083d9b4f7243dd63c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 12, 2026.

Transparency log

Release files / nullain_search-0.1.0-cp312-abi3-macosx_11_0_arm64.whl

Download URL nullain_search-0.1.0-cp312-abi3-macosx_11_0_arm64.whl
Size 2.2 MB
Tags CPython 3.12 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
009e4709f62fab516653b348dc60b9b480e1a32107b8a369df30f6ec721aabb7
BLAKE2b-256 checksum
How to use checksums
148038d247b352311e766424ab21dde21a50eb662cadb1f23cf114bca8a41ce5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 12, 2026.

Transparency log

Release files / nullain_search-0.1.0-cp312-abi3-macosx_10_12_x86_64.whl

Download URL nullain_search-0.1.0-cp312-abi3-macosx_10_12_x86_64.whl
Size 2.4 MB
Tags CPython 3.12 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
00bd6f243e80cf35ebaf36ff7b371c4bd4540da96899578b9d63aa5f1423ea38
BLAKE2b-256 checksum
How to use checksums
ed7f5d815aafe15bfeafac7d5a438e1b0437e4d62f88a2889f8087cad33e70c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 12, 2026.

Transparency log

Security for nullain-search 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 6 files in this release have been uploaded with provenance metadata.

Select from 6 files

Attestation for nullain_search-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 12, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

6 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page