[build-system] requires = ["setuptools>=68", "wheel", "poetry-core"] build-backend = "poetry.core.masonry.api" [project] name = "parallax" version = "0.1.2" description = "Decentralised pipeline-parallel LLM serving with Sglang + MLX-LM + Lattica" readme = "README.md" requires-python = ">=3.11,<3.14" packages = [ { include = "parallax", from = "src" }, { include = "scheduling", from = "src" }, { include = "parallax_utils", from = "src" }, { include = "parallax_extensions", from = "src" }, ] dependencies = [ "msgpack>=1.0.7", "safetensors>=0.5.1", "huggingface-hub", "modelscope", "transformers>=4.57.1", "jinja2>=3.1.0", "numpy>=1.26", "pyzmq>=25.0", "psutil>=5.9.5", "requests", "httpx[socks]>=0.26.0", "aiohttp", "uvicorn", "uvloop", "fastapi", "pydantic", "protobuf==6.31.1", "dijkstar==2.6.0", "lattica==1.0.21", "orjson", ] [project.scripts] parallax = "parallax.cli:main" [project.optional-dependencies] mac = [ "nanobind==2.12.0", "torch==2.8.0", "mlx-lm==0.31.3", "mlx==0.31.2", ] gpu = [ "sglang[all]==0.5.12", "kernels<0.15", "accelerate", "mlx-lm==0.31.3", "mlx[cpu]==0.31.2", ] vllm = [ "vllm==0.14.0", "mlx-lm==0.31.3", "mlx[cpu]==0.31.2", ] benchmark = [ "transformers", "tqdm", "datasets", "pillow", ] dev = [ "black>=24.3", "cmake>=3.27", "ninja>=1.11", "ruff>=0.4", "setuptools>=68", "pytest>=8.2", "pytest-mock>=3.14", "pytest-cov>=5.0", "pre-commit>=3.2", ] [tool.setuptools.packages.find] where = ["src"] # put your code under ./src/… [tool.black] line-length = 100 [tool.isort] profile = "black" [tool.ruff] ignore = ["E501"] # line length handled by Black line-length = 100