{"id":20541779,"url":"https://github.com/hivesolutions/appier","last_synced_at":"2025-04-05T01:08:56.107Z","repository":{"id":9528677,"uuid":"11429455","full_name":"hivesolutions/appier","owner":"hivesolutions","description":"Joyful Python Web App development","archived":false,"fork":false,"pushed_at":"2025-02-18T15:51:13.000Z","size":7174,"stargazers_count":129,"open_issues_count":14,"forks_count":22,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-03-28T07:17:26.394Z","etag":null,"topics":["appier","framework","mvc","python","wsgi"],"latest_commit_sha":null,"homepage":"http://appier.hive.pt","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hivesolutions.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":"2013-07-15T17:47:44.000Z","updated_at":"2025-03-05T21:24:41.000Z","dependencies_parsed_at":"2023-11-28T06:24:59.056Z","dependency_job_id":"6f8ff824-74e6-485d-9673-476451e63d30","html_url":"https://github.com/hivesolutions/appier","commit_stats":null,"previous_names":[],"tags_count":690,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hivesolutions%2Fappier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hivesolutions%2Fappier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hivesolutions%2Fappier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hivesolutions%2Fappier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hivesolutions","download_url":"https://codeload.github.com/hivesolutions/appier/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247271532,"owners_count":20911587,"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":["appier","framework","mvc","python","wsgi"],"created_at":"2024-11-16T01:26:07.776Z","updated_at":"2025-04-05T01:08:56.083Z","avatar_url":"https://github.com/hivesolutions.png","language":"Python","readme":"# [![Appier Framework](res/logo.png)](http://appier.hive.pt)\n\n**Joyful Python Web App development**\n\nAppier is an object-oriented Python web framework built for super-fast app development.\nIt's as lightweight as possible, but not too lightweight.\nIt gives you the power of bigger frameworks, without their complexity.\n\nYour first app can be just a few lines long:\n\n```python\nimport appier\n\nclass HelloApp(appier.App):\n\n    @appier.route(\"/\", \"GET\")\n    def hello(self):\n        return \"Hello World\"\n\nHelloApp().serve()\n```\n\nThe same app using the async/await syntax (Python 3.5+) for async execution reads pretty much the same:\n\n```python\nimport appier\n\nclass HelloApp(appier.App):\n\n    @appier.route(\"/\", \"GET\")\n    async def hello(self):\n        await self.send(\"Hello World\")\n\nHelloApp().serve()\n```\n\nRunning it is just as simple:\n\n```bash\npip install appier\npython hello.py\n```\n\nFor the async version an [ASGI](https://asgi.readthedocs.io) compliant server should be used (eg: [Uvicorn](https://www.uvicorn.org)):\n\n```bash\nSERVER=uvicorn python hello.py\n```\n\nYour \"Hello World\" app is now running at [http://localhost:8080](http://localhost:8080).\n\nIt features the following:\n\n* Object-oriented\n* [WSGI](https://www.python.org/dev/peps/pep-0333/) (Web Server Gateway Interface) compliant\n* [ASGI](https://asgi.readthedocs.io) (Asynchronous Server Gateway Interface) ready\n* Modular, using dynamically loaded parts\n* Python 3 compatible\n* RESTful request dispatching\n* Asynchronous request handling support\n* Templating, using [Jinja2](http://jinja.pocoo.org/)\n* Data model layer, currently supports [MongoDB](http://www.mongodb.org/) and [TinyDB](http://tinydb.readthedocs.org/)\n* Automatic JSON response encoding for fast API development\n* Automatic admin interface, using [Appier Extras](http://appier-extras.hive.pt/)\n* Internationalization (i18n) support\n* Flexible project configuration\n* Out-of-the-box support for multiple [WSGI](https://wsgi.readthedocs.io/) and [ASGI](https://asgi.readthedocs.io/) servers: [Netius](https://netius.hive.pt), [Uvicorn](https://www.uvicorn.org), [Hypercorn](https://pgjones.gitlab.io/hypercorn), [Daphne](https://github.com/django/daphne), etc.\n\nFor the purposes of rapid web development, Appier goes well with [Netius](http://netius.hive.pt)\n(web-server) and [UXF](http://uxf.hive.pt) (client-side graphical library) as a whole stack.\n\n## Learn more\n\n### Basic\n\n* [Structure](doc/structure.md) - how to setup the basic structure of your app\n* [App](doc/app.md) - the application workflow object\n* [Configuration](doc/configuration.md) - how to configure your app\n* [Models](doc/models.md) - how to save and retrieve data\n* [Controllers](doc/controllers.md) - how to route input and output\n* [Templates](doc/templates.md) - how to render output\n* [Requests](doc/requests.md) - how to handle requests\n* [Sessions](doc/sessions.md) - how to keep user data across requests\n* [Access Control](doc/access_control.md) - how to protect resources\n\n### Advanced\n\n* [Events](doc/events.md) - how to send information across the app\n* [Logging](doc/logging.md) - how to log your app's activity\n* [Email](doc/email.md) - how to send emails\n\n## License\n\nAppier is currently licensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/).\n\n## Build Automation\n\n[![Build Status](https://github.com/hivesolutions/appier/workflows/Main%20Workflow/badge.svg)](https://github.com/hivesolutions/appier/actions)\n[![PyPi Status](https://img.shields.io/pypi/v/appier.svg)](https://pypi.python.org/pypi/appier)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://www.apache.org/licenses/)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhivesolutions%2Fappier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhivesolutions%2Fappier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhivesolutions%2Fappier/lists"}