{"id":29871613,"url":"https://github.com/biom8er/phymes","last_synced_at":"2025-07-30T20:02:30.539Z","repository":{"id":303251263,"uuid":"1014725006","full_name":"biom8er/phymes","owner":"biom8er","description":"Parallel HYpergraph MEssaging Streams","archived":false,"fork":false,"pushed_at":"2025-07-29T22:08:22.000Z","size":19635,"stargazers_count":3,"open_issues_count":18,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-30T00:01:38.167Z","etag":null,"topics":["agentic-ai","data-science","digital-twins","generative-ai","graph-algorithms","rust","wasm"],"latest_commit_sha":null,"homepage":"https://biom8er.github.io/phymes/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/biom8er.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE-APACHE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-06T09:40:44.000Z","updated_at":"2025-07-29T22:18:17.000Z","dependencies_parsed_at":"2025-07-15T10:51:29.708Z","dependency_job_id":"8d0fd37d-dca1-4a13-84bb-ffa68a4925aa","html_url":"https://github.com/biom8er/phymes","commit_stats":null,"previous_names":["biom8er/phymes"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/biom8er/phymes","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/biom8er%2Fphymes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/biom8er%2Fphymes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/biom8er%2Fphymes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/biom8er%2Fphymes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/biom8er","download_url":"https://codeload.github.com/biom8er/phymes/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/biom8er%2Fphymes/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267930456,"owners_count":24167470,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-30T02:00:09.044Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agentic-ai","data-science","digital-twins","generative-ai","graph-algorithms","rust","wasm"],"created_at":"2025-07-30T20:01:14.035Z","updated_at":"2025-07-30T20:02:30.453Z","avatar_url":"https://github.com/biom8er.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PHYMES: Parallel HYpergraph MEssaging Streams\n\n[![CI Status](https://github.com/biom8er/phymes/actions/workflows/phymes.yml/badge.svg)](https://github.com/biom8er/phymes/actions/workflows/main.yml)\n[![Latest version](https://img.shields.io/crates/v/phymes-core.svg)](https://crates.io/crates/phymes-core)\n[![Documentation](https://docs.rs/phymes-core/badge.svg)](https://docs.rs/phymes-core)\n[![Guide](https://github.com/biom8er/phymes/actions/workflows/docs.yml/badge.svg)](https://biom8er.github.io/phymes/)\n[![License](https://img.shields.io/github/license/base-org/node?color=blue)](https://github.com/biom8er/phymes/blob/main/LICENSE-MIT)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue?style=flat-square)](https://github.com/biom8er/phymes/blob/main/LICENSE-APACHE)\n\n\u003c!--- ANCHOR: introduction ---\u003e\n\n## Introduction\n\n🤔 What is PHYMES?\n\nPHYMES (Parallel HYpergraph MEssaging Streams) is a subject-based message passing algorithm based on directed hypergraphs which provide the expressivity needed to model the heterogeneity and complexity of the real world. More details in the [guide].\n\n🤔 What can PHYMES do?\n\nPHYMES can be used to build scalable Agentic AI workflows, (hyper)-graph algorithms, and world simulators. Examples for building a chat bot, a tool calling agent, and document RAG agent are provided using embedded token/tensor services or local/remote token/tensor services using OpenAI compatible APIs.\n\n🤔 Why PHYMES?\n\n🔐 written 100% in [Rust] for performance, safety, and security.\u003cbr\u003e\n🌎 deployable on any platform (Linux, MacOs, Win, Android, and iOS) and in the browser (WebAssembly).\u003cbr\u003e\n💪 scalable to massive data sets using columnar in memory format, parallel and stream native processing, and GPU acceleration.\u003cbr\u003e\n🧩 interoperable with existing stacks by interfacing with cross-platform [Arrow] and [WASM]/[WASI].\u003cbr\u003e\n🔎 instrumented with tracing and customizable metrics to debug (hyper-)graph workflows faster.\u003cbr\u003e\n\n🤔 Who and what inspired PHYMES?\n\nPHYMES takes inspiration from real world networks including biological networks. The implementation of PHYMES takes inspiration from [DataFusion], [Pregel], and [PyG]. \n\n🙏 PHYMES would not be possible if it were not for the amazing open-sources projects that it is built on top of including [Arrow] and [Candle] with full-stack support from [Tokio], [Dioxus], and [Wasmtime].\n\n[guide]: https://biom8er.github.io/phymes/\n[Rust]: https://www.rust-lang.org/\n[Arrow]: https://arrow.apache.org/\n[Candle]: https://www.rust-lang.org/\n[Tokio]: https://tokio.rs/\n[Dioxus]: https://dioxuslabs.com/\n[DataFusion]: https://github.com/apache/datafusion\n[Pregel]: https://dl.acm.org/doi/10.1145/1807167.1807184\n[PyG]: https://github.com/pyg-team/pytorch_geometric\n[WASM]: https://webassembly.org/\n[WASI]: https://github.com/WebAssembly/WASI\n[contributing]: CONTRIBUTING.md\n\n\u003c!--- ANCHOR_END: introduction ---\u003e\n\n\u003c!--- ANCHOR: installation1 ---\u003e\n\n## Installation\n\nPrecompiled bundles for different Arch, OS, CUDA versions, and Token and Tensor services (e.g. for Agentic AI workflows) are provided on the [releases] page. \n\n| Arch | OS | CUDA | Token service |\n| ---- | -- | ---- | ------------- |\n| x86_64-unknown-linux-gnu | ubuntu22.04, ubuntu24.04 | 12.6.2, 12.9.1 | candle, openai_api |\n| wasm32-wasip2 | n/a | n/a | candle |\n| wasm32-unknown-unknown | n/a | n/a | candle |\n\nToken services for agentic AI workflows can embedded in the application using `candle` or accessed locally e.g., self-hosted NVIDIA NIMs docker containers or remotely e.g., OpenAI, NVIDIA NIMs, etc. that adhere to the OpenAI API schema using `openai_api`. Tensor services are embedded in the application using `candle` with CPU vectorization and GPU acceleration support.\n\nTo install the phymes application, download the precompiled bundle that matches your system and needs, and unzip the bundle. Double click on `phymes-server` to start the server. Navigate to http://127.0.0.1:4000/ to view the web application. \n\n\u003c!--- ANCHOR_END: installation1 ---\u003e\n\n[![Watch the video](phymes-book/src/assets/2025-07-05_phymes-app_ui_gif.gif)](https://biom8er.github.io/phymes/assets/2025-07-05_phymes-app_ui_1080p.mp4)\n\n*Click to see the full video*\n\n\u003c!--- ANCHOR: installation2 ---\u003e\n\nAlternatively, you can make REST API requests against the server using e.g., `curl`.\n\n```bash\n# Sign-in and get our JWT token\ncurl -X POST -u EMAIL:PASSWORD http://localhost:4000/app/v1/sign_in\n# mock response {\"email\":\"EMAIL\",\"jwt\":\"JWTTOKEN\",\"session_plans\":[\"Chat\",\"DocChat\",\"ToolChat\"]}\n\n# Chat request\n# Be sure to replace EMAIL and JWTTOKEN with your actual email and JWT token!\n# Note that the session_name = email + session_plan\ncurl -H \"Content-Type: application/json\" -H \"Authorization: Bearer JWTTOKEN\" -d '{\"content\": \"Write a python function to count prime numbers\", \"session_name\": \"EMAILChat\", \"subject_name\": \"messages\"}' http://localhost:4000/app/v1/chat\n```\n\nBefore running the `phymes-server`, setup the environmental variables *as needed* to access the local or remote OpenAI API token service endpoints.\n\n```bash\n# OpenAI API Key\nexport OPENAI_API_KEY=sk-proj-...\n\n# NVIDIA API Key\nexport NGC_API_KEY=nvapi-...\n\n# URL of the local/remote TGI OpenAI or NIMs deployment\nexport CHAT_API_URL=http://0.0.0.0:8000/v1\n\n# URL of the local/remote TEI OpenAI or NIMs deployment\nexport EMBED_API_URL=http://0.0.0.0:8001/v1\n```\n\nWASM builds of `phymes-server` can be ran as stateless functions for embedded application using [wasmtime] or serverless applications.\n\n\u003c!--- ANCHOR_END: installation2 ---\u003e\n\n[![Watch the video](phymes-book/src/assets/2025-07-05_phymes-app_server_gif.gif)](https://biom8er.github.io/phymes/assets/2025-07-05_phymes-app_server_1080p.mp4)\n\n*Click to see the full video*\n\n\u003c!--- ANCHOR: installation3 ---\u003e\n\n```bash\n# Sign-in and get our JWT token\nwastime phymes-server.wasm -- --route app/v1/sign_in --basic-auth EMAIL:PASSWORD\n# mock response {\"email\":\"EMAIL\",\"jwt\":\"JWTTOKEN\",\"session_plans\":[\"Chat\",\"DocChat\",\"ToolChat\"]}\n\n# Chat request\n# Be sure to replace EMAIL and JWTTOKEN with your actual email and JWT token!\n# Note that the session_name = email + session_plan\nwastime phymes-server.wasm curl -- --route app/v1/chat --bearer-auth JWTTOKEN --data '{\"content\": \"Write a python function to count prime numbers\", \"session_name\": \"EMAILChat\", \"subject_name\": \"messages\"}'\n```\n\nThe phymes application is available for desktop (Linux, Windows, MacOS) and mobile (Android, iOS), but requires building from source on the target platform (i.e., Linux for Linux desktop, Windows for Windows desktop, MacOS for MacOS desktop, Linux for Android, and MacOS for iOS). See [contributing] guide for detailed installation and build instructions.\n\n[releases]: https://github.com/biom8er/phymes/releases\n[Wasmtime]: https://github.com/bytecodealliance/wasmtime\n\n\u003c!--- ANCHOR_END: installation3 ---\u003e\n\n\u003c!--- ANCHOR: repository ---\u003e\n\n## Repository\n\nThe [`phymes-core`], [`phymes-ai`], [`phymes-etl`], [`phymes-agents`], [`phymes-server`], [`phymes-app`] crates form a full-stack application that can run Agentic AI workflows, (Hyper-)Graph algorithms, and/or Simulate complex real world networks at scale using a web, desktop, or mobile interface.\n\n| Crate | Description | Latest API Docs | README |\n| ----- | ----------- | --------------- | ------ |\n| [`phymes-core`] | Core hypergraph messaging functionality | [docs.rs](https://docs.rs/phymes-core/latest) | [README](phymes-core/README.md) |\n| [`phymes-ai`] | Support for Generative AI | [docs.rs](https://docs.rs/phymes-ai/latest) | [README](phymes-ai/README.md) |\n| [`phymes-etl`] | Support for GPU accelerated data wrangling | [docs.rs](https://docs.rs/phymes-etl/latest) | [README](phymes-etl/README.md) |\n| [`phymes-agents`] | Templates for building Agentic AI hypergraph messaging applications | [docs.rs](https://docs.rs/phymes-agents/latest) | [README](phymes-agents/README.md) |\n| [`phymes-server`] | Server that runs the Agentic AI hypergraph messaging services  | [docs.rs](https://docs.rs/phymes-server/latest) | [README](phymes-server/README.md) |\n| [`phymes-app`] | Frontend UI for dynamically interacting with the Agentic AI hypergraph messaging services  | [docs.rs](https://docs.rs/phymes-app/latest) | [README](phymes-app/README.md) |\n\n[`phymes-core`]: https://crates.io/crates/phymes-core\n[`phymes-ai`]: https://crates.io/crates/phymes-ai\n[`phymes-etl`]: https://crates.io/crates/phymes-etl\n[`phymes-agents`]: https://crates.io/crates/phymes-agents\n[`phymes-server`]: https://crates.io/crates/phymes-server\n[`phymes-app`]: https://crates.io/crates/phymes-app\n\n\u003c!--- ANCHOR_END: repository ---\u003e\n\n## Roadmap\n\n1. More examples for running hypergraph algorithms and simulators using `phymes-core`, and production agentic AI examples e.g., NVIDIA RAG [Blue Print](https://github.com/NVIDIA-AI-Blueprints/rag) within `phymes-agent`.\n2. Improved GPU accelerated ETL operators including joins and aggregations [see](https://arxiv.org/pdf/2312.00720)\n3. Better test coverage of `phymes-server` and `phymes-app` which also require a refactor particularly of `phymes-app` components\n4. Proper application database and sign-in user journey\n5. Better OpenAI (and non-OpenAI) API token service coverage e.g. [rust-genai], support for building Model Context Provider ([MCP]) e.g. [rust-sdk], and integrations with other external databases e.g. [rig]\n6. See [issues] for more...\n\n[rust-genai]: https://github.com/jeremychone/rust-genai\n[MCP]: https://modelcontextprotocol.io/specification\n[rust-sdk]: https://github.com/modelcontextprotocol/rust-sdk\n[rig]: https://github.com/0xPlaygrounds/rig\n\n## Community\n\nThe best place to engage with the Biom8er phymes community is on [GitHub Discussions][discussions]. New features and bug fix requests should be submitted via [GitHub issues][issues] which acts as the system of record for development. Design and more technical discussions should also take place on GitHub issues.\n\n[issues]: https://github.com/apache/arrow-rs/issues\n[discussions]: https://github.com/apache/arrow-rs/discussions","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbiom8er%2Fphymes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbiom8er%2Fphymes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbiom8er%2Fphymes/lists"}