{"id":13458152,"url":"https://planety.github.io/prologue/","last_synced_at":"2025-03-24T15:30:46.978Z","repository":{"id":38266581,"uuid":"233170965","full_name":"planety/prologue","owner":"planety","description":"Powerful and flexible web framework written in Nim","archived":false,"fork":false,"pushed_at":"2025-03-10T11:52:01.000Z","size":5490,"stargazers_count":1272,"open_issues_count":36,"forks_count":50,"subscribers_count":25,"default_branch":"devel","last_synced_at":"2025-03-17T06:21:48.283Z","etag":null,"topics":["async","async-web-applications","full-stack","hacktoberfest","http-framework","jester","nim","nimlang","prologue","prologue-framework","web","web-development","webapp-framework","webdev","webframework"],"latest_commit_sha":null,"homepage":"https://planety.github.io/prologue","language":"Nim","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/planety.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","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},"funding":{"github":"planety"}},"created_at":"2020-01-11T03:36:15.000Z","updated_at":"2025-03-16T20:25:14.000Z","dependencies_parsed_at":"2023-12-12T04:26:01.050Z","dependency_job_id":"9b0c1ef9-7368-41ba-92d6-4cb1f9b8aa79","html_url":"https://github.com/planety/prologue","commit_stats":{"total_commits":974,"total_committers":32,"mean_commits":30.4375,"dds":"0.15913757700205344","last_synced_commit":"54cf6922f00d3f124cc27a4de50fc2b39485ef56"},"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/planety%2Fprologue","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/planety%2Fprologue/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/planety%2Fprologue/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/planety%2Fprologue/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/planety","download_url":"https://codeload.github.com/planety/prologue/tar.gz/refs/heads/devel","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245297880,"owners_count":20592490,"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":["async","async-web-applications","full-stack","hacktoberfest","http-framework","jester","nim","nimlang","prologue","prologue-framework","web","web-development","webapp-framework","webdev","webframework"],"created_at":"2024-07-31T09:00:45.654Z","updated_at":"2025-03-24T15:30:45.448Z","avatar_url":"https://github.com/planety.png","language":"Nim","funding_links":["https://github.com/sponsors/planety"],"categories":["Documentation"],"sub_categories":[],"readme":"![Build Status](https://github.com/planety/prologue/workflows/Test%20Prologue/badge.svg)\n\n![License: Apache-2.0](https://img.shields.io/github/license/planety/prologue)\n[![Version](https://img.shields.io/github/v/release/planety/prologue?include_prereleases)](https://github.com/planety/prologue/releases)\n[![buy me a coffee](https://img.shields.io/badge/donate-buy%20me%20a%20coffee-orange.svg)](https://github.com/planety/prologue#donations)\n[![Discord](https://img.shields.io/discord/718010516034945045?label=Discord\u0026logo=discord\u0026logoColor=white)](https://discord.gg/e2dB4WT)\n\n# Prologue\n\nWhat's past is prologue.\n\n## Purpose\n\n`Prologue` is a powerful and flexible web framework written in Nim.\nIt is ideal for building elegant and high performance web services.\n\n**Reduce magic. Reduce surprise.**\n\n## Documentation\n\n\u003ctable class=\"tg\"\u003e\n\u003ctbody\u003e\n  \u003ctr\u003e\n    \u003ctd class=\"tg-0pky\"\u003eDocumentation\u003c/td\u003e\n    \u003ctd class=\"tg-c3ow\" text-align=\"center\" colspan=\"2\"\u003e\u003ca href=\"https://planety.github.io/prologue\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eIndex Page\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd class=\"tg-c3ow\"\u003eCore API\u003c/td\u003e\n    \u003ctd class=\"tg-0pky\"\u003e\u003ca href=\"https://planety.github.io/prologue/coreapi/theindex.html\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eIndex Page\u003c/a\u003e\u003c/td\u003e\n    \u003ctd class=\"tg-0pky\"\u003e\u003ca href=\"https://planety.github.io/prologue/coreapi/application.html\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eSearch Page\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd class=\"tg-c3ow\"\u003eFull API\u003c/td\u003e\n    \u003ctd class=\"tg-0pky\"\u003e\u003ca href=\"https://planety.github.io/prologue/plugin/theindex.html\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eIndex Page\u003c/a\u003e\u003c/td\u003e\n    \u003ctd class=\"tg-0pky\"\u003e\u003ca href=\"https://planety.github.io/prologue/plugin/plugin.html\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eSearch Page\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\nWelcome to write your own experience with Prologue at our [wiki](https://github.com/planety/prologue/wiki).\n\n## Features\n\n- Core\n  - [x] Configure and Settings\n  - [x] Context\n  - [x] Param and Query Data\n  - [x] Form Data\n  - [x] Static Files\n  - [x] Middleware\n  - [x] Powerful Routing System(based on [nest](https://github.com/kedean/nest))\n  - [x] Cookie\n  - [x] Startup and Shutdown Events\n  - [x] URL Building\n  - [x] Error Handler\n\n- Plugin\n  - [x] I18n\n  - [x] Basic Authentication\n  - [x] Minimal OpenAPI support\n  - [x] Websocket support\n  - [x] Mocking test\n  - [x] CORS Response\n  - [x] Data Validation\n  - [x] Session\n  - [x] Cache\n  - [x] Signing\n  - [x] Command line tools\n  - [x] Cross-Site Request Forgery\n  - [x] Clickjacking Protection\n\n\n## Installation\n\nFirst you should install [Nim](https://nim-lang.org/) language which is an elegant and high performance language. Follow the [instructions](https://nim-lang.org/install.html) and set environment variables correctly.\n\nThen you can use `nimble` command to install `prologue`.\n\n```bash\nnimble install prologue\n```\n\n## Usages\n\n### Hello World\n\n```nim\nimport prologue\n\nproc hello*(ctx: Context) {.async.} =\n  resp \"\u003ch1\u003eHello, Prologue!\u003c/h1\u003e\"\n\nlet app = newApp()\napp.get(\"/\", hello)\napp.run()\n```\n\nRun **app.nim** ( `nim c -r app.nim` ). Now the server is running at `localhost:8080`.\n\n### More examples\n- [HelloWorld](https://github.com/planety/prologue/tree/devel/examples/helloworld)\n- [ToDoList](https://github.com/planety/prologue/tree/devel/examples/todolist)\n- [ToDoApp](https://github.com/planety/prologue/tree/devel/examples/todoapp)\n- [Blog](https://github.com/planety/prologue/tree/devel/examples/blog)\n- [Additional examples repository](https://github.com/planety/prologue-examples)\n\n### Extensions\n\nIf you need more extensions, you can refer to [awesome prologue](https://github.com/planety/awesome-prologue) and [awesome nim](https://github.com/ringabout/awesome-nim#web).\n\n\n## Donations\n\nThanks for supporting me!\n\nhttps://github.com/sponsors/planety\n\n\n## Stars\n[![Stargazers over time](https://starchart.cc/planety/prologue.svg)](https://starchart.cc/planety/prologue)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/planety.github.io%2Fprologue%2F","html_url":"https://awesome.ecosyste.ms/projects/planety.github.io%2Fprologue%2F","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/planety.github.io%2Fprologue%2F/lists"}