Metadata-Version: 2.4
Name: pyixx
Version: 0.2.0
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: 3.13
Classifier: License :: OSI Approved :: MIT License
Classifier: License :: OSI Approved :: Apache Software License
Summary: Python bindings for libixx - NüschtOS search index
Keywords: nix,nixos,search,index,nuschtos
Author-email: Félix Dorn <dorn@xfe.li>
License-Expression: MIT OR Apache-2.0
Requires-Python: >=3.13, <3.14
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Homepage, https://github.com/NuschtOS/ixx
Project-URL: Repository, https://github.com/felixdorn/mcp-nix

# pyixx

Python bindings for [libixx](https://github.com/NuschtOS/ixx) - NüschtOS search index.

## Usage

```python
import pyixx

# Load an index from bytes
with open("index.ixx", "rb") as f:
    index = pyixx.Index.read(f.read())

# Search for options
results = index.search("colorscheme", max_results=10)
for r in results:
    print(f"{r.name} (idx={r.idx}, scope={r.scope_id})")

# The new binary format contains entries, not deployment metadata.
print(f"Entries: {index.size()}")

# Read chunkSize and scope names from the search deployment configuration.
chunk_size = 300
chunk, pos = divmod(results[0].idx, chunk_size)
# Fetch data/options/chunks/{chunk}.json and use item `pos`.
```

Version 0.2.0 reads the current upstream index format. The removed `meta()` and
`get_chunk_for_idx()` methods depended on metadata no longer embedded in indexes.
Scope IDs still refer to the deployment's configured scope order.

