{"id":16510732,"url":"https://github.com/witchard/grole","last_synced_at":"2025-10-28T03:31:58.536Z","repository":{"id":55588543,"uuid":"102984549","full_name":"witchard/grole","owner":"witchard","description":"A simple python (3.5+) asyncio based web framework","archived":false,"fork":false,"pushed_at":"2020-12-20T09:16:07.000Z","size":49,"stargazers_count":5,"open_issues_count":1,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-02-01T11:11:05.570Z","etag":null,"topics":["asyncio","framework","python","web","webframework"],"latest_commit_sha":null,"homepage":"http://grole.readthedocs.io/","language":"Python","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/witchard.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-09-09T20:56:43.000Z","updated_at":"2020-12-20T09:16:06.000Z","dependencies_parsed_at":"2022-08-15T03:50:22.160Z","dependency_job_id":null,"html_url":"https://github.com/witchard/grole","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/witchard%2Fgrole","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/witchard%2Fgrole/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/witchard%2Fgrole/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/witchard%2Fgrole/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/witchard","download_url":"https://codeload.github.com/witchard/grole/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238590596,"owners_count":19497350,"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":["asyncio","framework","python","web","webframework"],"created_at":"2024-10-11T15:56:39.425Z","updated_at":"2025-10-28T03:31:53.147Z","avatar_url":"https://github.com/witchard.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Grole\n=====\n\n.. image:: https://img.shields.io/github/license/witchard/grole.svg\n    :target: https://witchard.mit-license.org\n\n.. image:: https://img.shields.io/pypi/v/grole.svg\n    :target: https://pypi.python.org/pypi/grole\n\n.. image:: https://img.shields.io/pypi/pyversions/grole.svg\n    :target: https://pypi.python.org/pypi/grole\n\n.. image:: https://readthedocs.org/projects/grole/badge/?version=latest\n    :target: https://grole.readthedocs.io\n\n.. image:: https://img.shields.io/travis/witchard/grole.svg\n    :target: https://travis-ci.org/witchard/grole\n\n.. image:: https://img.shields.io/coveralls/witchard/grole.svg\n    :target: https://coveralls.io/github/witchard/grole\n\nGrole is a python (3.5+) nano web framework based on asyncio. It's goals are to be simple, embedable (single file and standard library only) and easy to use. The authors intention is that it should support standing up quick and dirty web based APIs.\n\nIt's loosely based on bottle and flask, but unlike them does not require a WSGI capable server to handle more than one request at once. Sanic is similar, but it does not meet the embedable use-case.\n\nA grole is a multi-spouted drinking vessel (https://en.wikipedia.org/wiki/Grole), which harks to this modules bottle/flask routes but with the ability to serve multiple drinkers at once!\n\nDocumentation\n-------------\n\nSee the doc folder, or visit https://grole.readthedocs.io.\n\nExample\n-------\n\n.. code-block:: python\n\n    from grole import Grole\n\n    app = Grole()\n\n    @app.route('/(.*)?')\n    def index(env, req):\n        name = req.match.group(1) or 'World'\n        return 'Hello, {}!'.format(name)\n\n    app.run()\n\nRun this script and then point your browser at http://localhost:1234/.\n\nGrole also has an inbuilt simple file server which will serve all the files in a directory. Just run `grole.py` or `python -m grole`.\n\nInstall\n-------\n\nEither download `grole.py` directly from github and place in your project folder, or `pip3 install grole`.\n\nLicense\n-------\n\nMIT.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwitchard%2Fgrole","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwitchard%2Fgrole","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwitchard%2Fgrole/lists"}