{"id":49116173,"url":"https://github.com/rapidsai/quent","last_synced_at":"2026-04-21T07:35:14.848Z","repository":{"id":351610462,"uuid":"1162795461","full_name":"rapidsai/quent","owner":"rapidsai","description":"An experimental framework for instrumentation-based telemetry/profiling targeting complex data-intensive distributed runtime engines","archived":false,"fork":false,"pushed_at":"2026-04-15T17:49:26.000Z","size":2084,"stargazers_count":5,"open_issues_count":42,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-15T19:33:36.317Z","etag":null,"topics":["quent","query-engine","telemetry"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rapidsai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-20T17:50:15.000Z","updated_at":"2026-04-15T17:49:28.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/rapidsai/quent","commit_stats":null,"previous_names":["rapidsai/quent"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/rapidsai/quent","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rapidsai%2Fquent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rapidsai%2Fquent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rapidsai%2Fquent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rapidsai%2Fquent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rapidsai","download_url":"https://codeload.github.com/rapidsai/quent/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rapidsai%2Fquent/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32082571,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-21T06:27:27.065Z","status":"ssl_error","status_checked_at":"2026-04-21T06:27:21.250Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["quent","query-engine","telemetry"],"created_at":"2026-04-21T07:35:14.097Z","updated_at":"2026-04-21T07:35:14.834Z","avatar_url":"https://github.com/rapidsai.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Quent\n\nQuent is a framework for building tools that help understand behavior and\nresource utilization of abstract data and control flow structures in your\napplication. It provides a set of modeling concepts (especially Finite State\nMachines, Resources, and how they can be related).\n\nFrom an application model, a statically typed instrumentation API is generated.\nApplications instrumented with this API emit structured telemetry that can be\nstored, analyzed, and visualized.\n\nQuent provides building blocks for each of these layers, so you (or preferably\nyour coding agent) can mix and match to build a dedicated, semantically rich\nprofiling / telemetry tool for your application.\n\nIn this experimental stage, the first domain we target is that of query engines,\nbut the basic concepts are domain-agnostic and may be applied to other domains.\n\n## Status\n\nThis project is experimental and under heavy development. The modeling concepts,\ngenerated and non-generated APIs, and implementations are continunously subject\nto breaking changes for now. There are no releases. Consider this project\npre-alpha. Expect bugs. At the same time, early experiments are welcome, as well\nas thoughts, questions, suggestions, and feature requests.\n\n## Show me the code\n\nAn extensive example of using all modeling concepts to define a model and the\nresulting instrumentation API is found here:\n\n- [Example](examples/readme/src/lib.rs)\n\nA simulated application (a query engine), analysis back-end and front-end can be\nfound here:\n\n- [Simulator](examples/simulator/)\n- [Analyzer](examples/simulator/analyzer/)\n- [Front-end](ui/)\n\nWhile Quent is a Rust-based project, it can generate a C++ instrumentation API.\nThis is shown here:\n\n- [C++ Integration Example](examples/cpp-integration/)\n\n## How\n\nA developer constructs a **model** of their application: **FSMs** to track\nlifecycles of objects, **Resources** to represent things with limited capacity,\nand **Usages** to tie the two together. The model produces a type-safe\ninstrumentation API through which events are emitted and stored.\n\nAnalysis tools consume the emitted events and, using the structural information\nfrom the model, automatically derive timelines and utilization graphs. For\nquery engines, this includes plan DAG visualizations and per-operator\nbreakdowns. Application-specific analysis is easy to build on top of the\nstructured modeling approach that the framework provides.\n\n## Provided by this repository\n\n- **Specification**: the [docs](docs/) directory, defining the modeling\n  concepts and a domain-specific model for query engines.\n- Rust implementations of:\n  - **Instrumentation**: a domain-agnostic library for emitting\n    type-safe telemetry from a model.\n  - **Exporters**: pluggable telemetry transports.\n  - **Analyzers**: components to build application-specific services that\n    reconstruct in-memory models from collected events, with traits for querying\n    FSM states, resource usage, and entity relationships, besides\n    application-custom logic.\n- Query engine domain-specific building blocks for the above, and examples:\n  - **Web UI**: a React-based frontend for interactive visualization of query\n    plans (DAGs), resource timelines, and operator statistics.\n  - **Simulator**: an example application that emits telemetry for a simulated\n    query engine, useful for development and demonstration.\n\nThe core of the project is the modeling approach: Entities, FSMs, Resources,\nCapacities, and Usages, and the logic that connects them (resource utilization\ntracking, hierarchical aggregation, and model reconstruction from events).\nEverything else (storage, transport, instrumentation, and visualization) is an\nopinionated but replaceable implementation based on the modeling approach.\n\n## Development\n\n### Prerequisites\n\n- Rust (stable, \u003e= 1.93)\n- Node.js (\u003e= 24.11)\n- pnpm (\u003e= 10)\n- protoc (protobuf compiler)\n\nOr use [pixi](https://pixi.sh) to manage all dependencies:\n\n```bash\npixi shell\n```\n\nThis installs the required toolchains and drops you into a shell with\neverything on `PATH`.\n\n### UI development\n\nThe easiest way to get a working backend for UI development is with Docker\nCompose:\n\n```bash\ndocker compose up --build\n```\n\nThis spawns the simulator server (collector on `:7836`, analyzer HTTP API on\n`:8080`) and runs the simulator application, which generates a test dataset\nby sending simulated query engine events to the collector.\n\nThen start the Vite dev server:\n\n```bash\ncd ui\npnpm install\npnpm dev\n```\n\nThe dev server starts on \u003chttp://localhost:5173\u003e by default.\n\n#### Running the server without Docker\n\nWithout the `ui` feature, the server only exposes the analysis API and does not\nbuild and serve the static webpage, so you can use the Vite dev server as\ndescribed previously.\n\n```bash\ncargo run -p quent-simulator-server -- --cors-address http://localhost:5173\n```\n\nTo generate a test dataset, run the simulator:\n\n```bash\ncargo run -p quent-simulator\n```\n\n### Building with the static webpage\n\nWith the `ui` feature flag, the server also serves the static webpage, removing\nthe need for a separate frontend server. This approach can be useful to do some\nstress testing on the UI.\n\n```bash\ncargo build -p quent-simulator-server --features ui --release\n```\n\nThis runs `pnpm install \u0026\u0026 pnpm build` in `ui/` as part of the Cargo build and\nbundles the output into the binary.\n\n### Swagger UI\n\nAn interactive API explorer is available behind the `swagger` feature flag:\n\n```bash\ncargo build -p quent-simulator-server --features ui,swagger --release\n```\n\nThen visit \u003chttp://localhost:8080/swagger-ui\u003e.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frapidsai%2Fquent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frapidsai%2Fquent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frapidsai%2Fquent/lists"}