neomemx 0.1.1

A high-performance memory library for AI agents with semantic search
Documentation
CARGO            ?= cargo
PYTHON           ?= python3
MATURIN          ?= maturin
RUST_FEATURES    ?=
PYTHON_FEATURES  ?= python
WHEEL_DIR        ?= target/wheels

.PHONY: help build build-release fmt lint check test itest bench \
        example-basic python-develop python-build python-install clean

help:
	@echo "Targets:"
	@echo "  build            - cargo build (debug)"
	@echo "  build-release    - cargo build --release"
	@echo "  fmt              - cargo fmt --all"
	@echo "  lint             - cargo clippy --all-targets --all-features -D warnings"
	@echo "  check            - cargo check --all-targets --features='$(RUST_FEATURES)'"
	@echo "  test             - cargo test --features='$(RUST_FEATURES)'"
	@echo "  itest            - cargo test --tests --features='$(RUST_FEATURES)'"
	@echo "  bench            - cargo bench --features='$(RUST_FEATURES)'"
	@echo "  example-basic    - cargo run --example basic"
	@echo "  python-develop   - maturin develop -F '$(PYTHON_FEATURES)' --release"
	@echo "  python-build     - maturin build   -F '$(PYTHON_FEATURES)' --release --out $(WHEEL_DIR)"
	@echo "  python-install   - pip install $(WHEEL_DIR)/neomemx-*.whl --force-reinstall"
	@echo "  clean            - cargo clean && rm -rf $(WHEEL_DIR)"

build:
	$(CARGO) build --features="$(RUST_FEATURES)"

build-release:
	$(CARGO) build --release --features="$(RUST_FEATURES)"

fmt:
	$(CARGO) fmt --all

lint:
	$(CARGO) clippy --all-targets --all-features -D warnings

check:
	$(CARGO) check --all-targets --features="$(RUST_FEATURES)"

test:
	$(CARGO) test --features="$(RUST_FEATURES)"

itest:
	$(CARGO) test --tests --features="$(RUST_FEATURES)"

bench:
	$(CARGO) bench --features="$(RUST_FEATURES)"

example-basic:
	$(CARGO) run --example basic

python-develop:
	$(MATURIN) develop -F "$(PYTHON_FEATURES)" --release

python-build:
	$(MATURIN) build -F "$(PYTHON_FEATURES)" --release --out $(WHEEL_DIR)

python-install:
	pip install $(WHEEL_DIR)/neomemx-*.whl --force-reinstall

clean:
	$(CARGO) clean
	rm -rf $(WHEEL_DIR)