{"id":13725206,"url":"https://github.com/P403n1x87/austin-web","last_synced_at":"2025-05-07T19:33:16.161Z","repository":{"id":42013077,"uuid":"277068904","full_name":"P403n1x87/austin-web","owner":"P403n1x87","description":"An Austin web interface for remote profiling","archived":false,"fork":false,"pushed_at":"2024-02-21T10:18:30.000Z","size":1083,"stargazers_count":7,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-08T02:34:06.496Z","etag":null,"topics":["hacktoberfest","profiling","python","webapp"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/P403n1x87.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":"CODE-OF-CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":"p403n1x87","patreon":"P403n1x87","custom":"https://www.buymeacoffee.com/Q9C1Hnm28"}},"created_at":"2020-07-04T08:18:45.000Z","updated_at":"2024-03-04T12:05:35.000Z","dependencies_parsed_at":"2022-07-22T19:33:21.481Z","dependency_job_id":null,"html_url":"https://github.com/P403n1x87/austin-web","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/P403n1x87%2Faustin-web","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/P403n1x87%2Faustin-web/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/P403n1x87%2Faustin-web/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/P403n1x87%2Faustin-web/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/P403n1x87","download_url":"https://codeload.github.com/P403n1x87/austin-web/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224645258,"owners_count":17346106,"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":["hacktoberfest","profiling","python","webapp"],"created_at":"2024-08-03T01:02:15.760Z","updated_at":"2024-11-14T15:30:54.935Z","avatar_url":"https://github.com/P403n1x87.png","language":"Python","funding_links":["https://github.com/sponsors/p403n1x87","https://patreon.com/P403n1x87","https://www.buymeacoffee.com/Q9C1Hnm28","https://www.paypal.me/gtornetta/1"],"categories":["Python"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cbr\u003e\n  \u003cimg width=\"320px\" src=\"art/logo.png\" alt=\"Austin Web\"\u003e\n  \u003cbr\u003e\n\u003c/p\u003e\n\n\u003ch3 align=\"center\"\u003eA Modern Web Interface for Austin\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/3/3a/Tux_Mono.svg\"\n       height=\"24px\" /\u003e\n  \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/f/fa/Apple_logo_black.svg\"\n       height=\"24px\" /\u003e\n  \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/2/2b/Windows_logo_2012-Black.svg\"\n       height=\"24px\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/P403n1x87/austin-web/actions?workflow=Tests\"\u003e\n    \u003cimg src=\"https://github.com/P403n1x87/austin-web/workflows/Tests/badge.svg\"\n         alt=\"GitHub Actions: Tests\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://travis-ci.com/P403n1x87/austin-web\"\u003e\n    \u003cimg src=\"https://travis-ci.com/P403n1x87/austin-web.svg?token=fzW2yzQyjwys4tWf9anS\"\n         alt=\"Travis CI\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://codecov.io/gh/P403n1x87/austin-web\"\u003e\n    \u003cimg src=\"https://codecov.io/gh/P403n1x87/austin-web/branch/master/graph/badge.svg\"\n         alt=\"Codecov\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://pypi.org/project/austin-web/\"\u003e\n    \u003cimg src=\"https://img.shields.io/pypi/v/austin-web.svg\"\n         alt=\"PyPI\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/P403n1x87/austin-web/blob/master/LICENSE.md\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/license-GPLv3-ff69b4.svg\"\n         alt=\"LICENSE\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#synopsis\"\u003e\u003cb\u003eSynopsis\u003c/b\u003e\u003c/a\u003e\u0026nbsp;\u0026bull;\n  \u003ca href=\"#installation\"\u003e\u003cb\u003eInstallation\u003c/b\u003e\u003c/a\u003e\u0026nbsp;\u0026bull;\n  \u003ca href=\"#usage\"\u003e\u003cb\u003eUsage\u003c/b\u003e\u003c/a\u003e\u0026nbsp;\u0026bull;\n  \u003ca href=\"#compatibility\"\u003e\u003cb\u003eCompatibility\u003c/b\u003e\u003c/a\u003e\u0026nbsp;\u0026bull;\n  \u003ca href=\"#contribute\"\u003e\u003cb\u003eContribute\u003c/b\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.buymeacoffee.com/Q9C1Hnm28\"\n     target=\"_blank\"\u003e\n  \u003cimg src=\"https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png\"\n       alt=\"Buy Me A Coffee\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n# Synopsis\n\nAustin Web is a modern web interface for [Austin], the frame stack sampler for\nCPython, based on [D3.js] and [tailwindcss]. It is yet another example of how to\nuse Austin to make a visual profiling tool for Python. The flame graph is\ngenerated using [d3-flame-graph].\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"art/austin-web-serve.gif\"\n       style=\"box-shadow: #111 0px 0px 16px;\" /\u003e\n\u003c/p\u003e\n\nAustin Web offers two main functionalities. The default one is to serve a web\npage that allows you to have a live view of the metrics collected by Austin. The\nvisualisation is a _live_ flame graph in your browser that refreshes every 3\nseconds with newly collected data. Hence, Austin Web can also be used for\n_remote_ profiling.\n\nYou can also run Austin Web in _compile_ mode to generate a static flame graph\nHTML page, much like [flamegraph.pl], but with the full Austin Web UI around it.\n\n\n# Installation\n\nAustin Web can be installed from PyPI simply with\n\n~~~ bash\npipx install austin-web\n~~~\n\n\u003e **NOTE** Austin Web relies on the\n\u003e [Austin] binary being available from the `PATH` environment variable. So make\n\u003e sure that Austin is properly installed on your system. See [Austin\n\u003e installation](https://github.com/P403n1x87/austin#installation) instruction\n\u003e for more details on how to get Austin installed on your platform.\n\n\n# Usage\n\nYou can run Austin Web simply with\n\n~~~ bash\naustin-web python myscript.py\n~~~\n\nto start serving on localhost over an ephemeral port. If `myscript.py` is an\nexecutable script, you can simply do\n\n~~~ bash\naustin-web myscript.py\n~~~\n\nIf you want to specify the host and the port, you can pass the `--host` and\n`--port` options to the command line. For example, to serve for the World on\nport 5050, use\n\n~~~ bash\naustin-web --host 0.0.0.0 --port 5050 python myscript.py\n~~~\n\nIf you want to compile the collected metrics into a static HTML page, you can\nrun Austin Web in compile mode by passing the `--compile` option, followed by\nthe destination file name, e.g.\n\n~~~ bash\naustin-web --compile output.html python myscript.py\n~~~\n\nLike Austin, you can use Austin Web to profile any running Python application.\nFor example, to profile a WSGI server and all its child processes, get hold of\nits PID and do\n\n~~~ bash\nsudo austin-web -Cp \u003cpid\u003e\n~~~\n\n\n# Compatibility\n\nAustin Web has been tested with Python 3.9-3.12 and is known to work on\n**Linux**, **MacOS** and **Windows**.\n\nAustin Web is known to have some minor issues on Windows. When started in serve\nmode, pressing `Ctrl+C` might not actually stop Austin Web.\n\nSince Austin Web uses Austin to collect samples, the same note applies here:\n\n\u003e Attaching to a running process in Python requires the `cap_systrace`\n\u003e capability. To avoid running Austin Web with `sudo`, consider setting it to\n\u003e the Austin binary with, e.g.\n\u003e\n\u003e ~~~ bash\n\u003e sudo setcap cap_sys_ptrace+ep `which austin`\n\u003e ~~~\n\n\u003e Due to the **System Integrity Protection** introduced in **MacOS** with El\n\u003e Capitan, Austin cannot profile Python processes that use an executable located\n\u003e in the `/bin` folder, even with `sudo`. Hence, either run the interpreter from\n\u003e a virtual environment or use a Python interpreter that is installed in, e.g.,\n\u003e `/Applications` or via `brew` with the default prefix (`/usr/local`). Even in\n\u003e these cases, though, the use of `sudo` is required.\n\n\n# Contribute\n\nIf you want to help with the development, then have a look at the open issues\nand have a look at the [contributing guidelines](CONTRIBUTING.md) before you\nopen a pull request.\n\nYou can also contribute to the development of the Austin Web by becoming a\nsponsor and/or by [buying me a coffee](https://www.buymeacoffee.com/Q9C1Hnm28)\non BMC or by chipping in a few pennies on\n[PayPal.Me](https://www.paypal.me/gtornetta/1).\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.buymeacoffee.com/Q9C1Hnm28\"\n     target=\"_blank\"\u003e\n  \u003cimg src=\"https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png\"\n       alt=\"Buy Me A Coffee\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\n[Austin]: https://github.com/P403n1x87/austin\n[D3.js]: https://d3js.org/\n[d3-flame-graph]: https://github.com/spiermar/d3-flame-graph\n[flamegraph.pl]: https://github.com/brendangregg/FlameGraph\n[tailwindcss]: https://tailwindcss.com/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FP403n1x87%2Faustin-web","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FP403n1x87%2Faustin-web","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FP403n1x87%2Faustin-web/lists"}