{"id":13998088,"url":"https://github.com/emersonford/tracing-indicatif","last_synced_at":"2025-05-15T01:04:19.858Z","repository":{"id":65773831,"uuid":"597310648","full_name":"emersonford/tracing-indicatif","owner":"emersonford","description":"Tracing layer that automatically creates and manages progress bars for active spans.","archived":false,"fork":false,"pushed_at":"2025-01-18T19:15:51.000Z","size":15800,"stargazers_count":215,"open_issues_count":1,"forks_count":9,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-14T23:19:11.006Z","etag":null,"topics":["indicatif","progress-bar","rust","tracing"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/emersonford.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"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}},"created_at":"2023-02-04T06:11:09.000Z","updated_at":"2025-04-11T11:58:09.000Z","dependencies_parsed_at":"2024-10-28T11:36:06.552Z","dependency_job_id":"6bca5abf-4e46-4b5e-beee-faa1d20b2371","html_url":"https://github.com/emersonford/tracing-indicatif","commit_stats":{"total_commits":53,"total_committers":2,"mean_commits":26.5,"dds":"0.018867924528301883","last_synced_commit":"224e512c21c3deb235658807dbffeb16fc14877f"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emersonford%2Ftracing-indicatif","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emersonford%2Ftracing-indicatif/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emersonford%2Ftracing-indicatif/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emersonford%2Ftracing-indicatif/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emersonford","download_url":"https://codeload.github.com/emersonford/tracing-indicatif/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248975330,"owners_count":21192210,"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","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":["indicatif","progress-bar","rust","tracing"],"created_at":"2024-08-09T19:01:23.187Z","updated_at":"2025-04-14T23:19:24.550Z","avatar_url":"https://github.com/emersonford.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# tracing-indicatif\n[![Documentation](https://docs.rs/tracing-indicatif/badge.svg)](https://docs.rs/tracing-indicatif/)\n[![Crates.io](https://img.shields.io/crates/v/tracing-indicatif.svg)](https://crates.io/crates/tracing-indicatif)\n\nA [tracing](https://docs.rs/tracing/latest/tracing/) layer that automatically creates and manages [indicatif](https://docs.rs/indicatif/latest/indicatif/index.html) progress bars for active spans.\n\nProgress bars are a great way to make your CLIs feel more responsive. However,\nadding and managing progress bars in your libraries can be invasive, unergonomic,\nand difficult to keep track of.\n\nThis library aims to make it easy to show progress bars for your CLI by tying\nprogress bars to [tracing spans](https://docs.rs/tracing/latest/tracing/#spans).\nFor CLIs/libraries already using tracing spans, this allow for a dead simple (3\nline) code change to enable a smooth progress bar experience for your program.\nThis eliminates having to have code in your libraries to manually manage\nprogress bar instances.\n\nThis ends up working quite well as progress bars are fundamentally tracking the\nlifetime of some \"span\" (whether that \"span\" is defined explicitly or implicitly),\nso might as well make that relationship explicit.\n\n## Demo\nSee the [`examples`](https://github.com/emersonford/tracing-indicatif/tree/main/examples)\nfolder for demo code.\n\n### [Default Configuration](https://github.com/emersonford/tracing-indicatif/blob/main/examples/basic.rs)\n![demo using basic example](basic.gif)\n\n### [Default Configuration with Child Spans](https://github.com/emersonford/tracing-indicatif/blob/main/examples/child_spans.rs)\n![demo using child_spans example](child_spans.gif)\n\n### [Progress Bar](https://github.com/emersonford/tracing-indicatif/blob/main/examples/progress_bar.rs)\n![demo using progress_bar example](progress_bar.gif)\n\n### [Build Console Like](https://github.com/emersonford/tracing-indicatif/blob/main/examples/build_console.rs)\nA recreation of `buck2`'s [superconsole](https://github.com/facebookincubator/superconsole).\n![demo using build_console example](build_console.gif)\n\n## Features\n* Customize progress bars using the same [`ProgressStyle`](https://docs.rs/indicatif/latest/indicatif/style/struct.ProgressStyle.html#method.template)\n  API as indicatif.\n* Supports displaying parent-child span relationship between progress bars.\n* Limit the number of progress bars visible on the terminal.\n* Prevents progress bars from clobbering tracing logs.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femersonford%2Ftracing-indicatif","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femersonford%2Ftracing-indicatif","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femersonford%2Ftracing-indicatif/lists"}