{"id":13598357,"url":"https://github.com/almarklein/asgineer","last_synced_at":"2025-04-23T19:31:45.823Z","repository":{"id":33007775,"uuid":"149346140","full_name":"almarklein/asgineer","owner":"almarklein","description":"A really thin ASGI web framework","archived":false,"fork":false,"pushed_at":"2024-04-22T08:07:10.000Z","size":212,"stargazers_count":55,"open_issues_count":1,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-09-20T03:19:11.778Z","etag":null,"topics":["asgi","framework","python","web"],"latest_commit_sha":null,"homepage":"https://asgineer.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/almarklein.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2018-09-18T20:10:06.000Z","updated_at":"2024-09-05T07:49:58.000Z","dependencies_parsed_at":"2024-06-19T03:02:24.017Z","dependency_job_id":null,"html_url":"https://github.com/almarklein/asgineer","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/almarklein%2Fasgineer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/almarklein%2Fasgineer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/almarklein%2Fasgineer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/almarklein%2Fasgineer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/almarklein","download_url":"https://codeload.github.com/almarklein/asgineer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223932161,"owners_count":17227277,"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":["asgi","framework","python","web"],"created_at":"2024-08-01T17:00:51.964Z","updated_at":"2024-11-10T09:05:03.039Z","avatar_url":"https://github.com/almarklein.png","language":"Python","readme":"# Asgineer\nA really thin ASGI web framework 🐍🤘\n\n[![Build Status](https://github.com/almarklein/asgineer/workflows/CI/badge.svg)](https://github.com/almarklein/asgineer/actions)\n[![Documentation Status](https://readthedocs.org/projects/asgineer/badge/?version=latest)](https://asgineer.readthedocs.io/?badge=latest)\n[![Package Version](https://badge.fury.io/py/asgineer.svg)](https://pypi.org/project/asgineer)\n\n\n## Introduction\n\n[Asgineer](https://asgineer.readthedocs.io) is a tool to write asynchronous\nweb applications, using as few abstractions as possible, while still\noffering a friendly API. The\n[guide](https://asgineer.readthedocs.io/guide.html) and\n[reference](https://asgineer.readthedocs.io/reference.html) take just a few\nminutes to read!\n\nWhen running Asgineer on [Uvicorn](https://github.com/encode/uvicorn),\nit is one of the fastest web frameworks available. It supports http\nlong polling, server side events (SSE), and websockets. And has utilities\nto serve assets the right (and fast) way.\n\nAsgineer is proudly used to serve e.g. https://pyzo.org and https://timetagger.app.\n\n\n## Example\n\n```py\n# example.py\n\nimport asgineer\n\n@asgineer.to_asgi\nasync def main(request):\n    return f\"\u003chtml\u003eYou requested \u003cb\u003e{request.path}\u003c/b\u003e\u003c/html\u003e\"\n\nif __name__ == '__main__':\n    asgineer.run(main, 'uvicorn', 'localhost:8080')\n```\n\nYou can start the server by running this script, or start it the *ASGI way*, e.g.\nwith Uvicorn:\n```\n$ uvicorn example:main --host=localhost --port=8080\n```\n\n## Installation and dependencies\n\nAsgineer needs Python 3.6 or higher. To install or upgrade, run:\n```\n$ pip install -U asgineer\n```\n\nAsgineer has zero hard dependencies, but it\nneeds an ASGI server to run on, like\n[Uvicorn](https://github.com/encode/uvicorn),\n[Hypercorn](https://gitlab.com/pgjones/hypercorn), or\n[Daphne](https://github.com/django/daphne).\n\n\n## Development\n\nExtra dev dependencies: `pip install invoke pytest pytest-cov black flake8 requests websockets`\n\nRun `invoke -l` to get a list of dev commands, e.g.:\n\n* `invoke autoformat` to apply Black code formatting.\n* `invoke lint` to test for unused imports and more.\n* `invoke tests` to run the tests, optionally set the `ASGI_SERVER` environment variable.\n\n\n## License\n\nBSD 2-clause.\n","funding_links":[],"categories":["Application frameworks"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falmarklein%2Fasgineer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falmarklein%2Fasgineer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falmarklein%2Fasgineer/lists"}