[build-system]
build-backend = "maturin"
requires = ["maturin>=1.13,<2.0"]
[project]
name = "opthash"
description = "Rust implementations of Elastic Hashing and Funnel Hashing with Python bindings"
readme = "README.md"
license-files = ["LICENSE"]
requires-python = ">=3.10"
authors = [{ name = "Aaron Ang" }]
keywords = ["hashmap", "open-addressing", "elastic-hashing", "funnel-hashing"]
classifiers = [
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Programming Language :: Rust",
"Topic :: Software Development :: Libraries :: Python Modules",
]
dynamic = ["version"]
[project.urls]
Repository = "https://github.com/aaron-ang/opthash"
Issues = "https://github.com/aaron-ang/opthash/issues"
[project.optional-dependencies]
test = ["pytest>=8", "hypothesis>=6", "pytest-benchmark>=5"]
[dependency-groups]
charts = ["matplotlib>=3.9"]
[tool.maturin]
features = ["python"]
[tool.maturin.generate-ci.github]
trusted-publishing = true
publishing-environment = "pypi"
[tool.pytest.ini_options]
testpaths = ["tests"]
addopts = [
"--benchmark-disable-gc",
"--benchmark-warmup=on",
"--benchmark-warmup-iterations=20",
"--benchmark-min-rounds=50",
]