Gitpedia

Prologue

Powerful and flexible web framework written in Nim

From planety·Updated May 26, 2026·View on GitHub·

`Prologue` is a powerful and flexible web framework written in Nim. It is ideal for building elegant and high performance web services. The project is written primarily in Nim, distributed under the Apache License 2.0 license, first published in 2020. It has gained significant community traction with 1,340 stars and 53 forks on GitHub. Key topics include: async, async-web-applications, full-stack, hacktoberfest, http-framework.

Latest release: v0.6.8
January 11, 2026View Changelog →

Build Status

License: Apache-2.0
Version
buy me a coffee
Discord

Prologue

What's past is prologue.

Purpose

Prologue is a powerful and flexible web framework written in Nim.
It is ideal for building elegant and high performance web services.

Reduce magic. Reduce surprise.

Documentation

<table class="tg"> <tbody> <tr> <td class="tg-0pky">Documentation</td> <td class="tg-c3ow" text-align="center" colspan="2"><a href="https://planety.github.io/prologue" target="_blank" rel="noopener noreferrer">Index Page</a></td> </tr> <tr> <td class="tg-c3ow">Core API</td> <td class="tg-0pky"><a href="https://planety.github.io/prologue/coreapi/theindex.html" target="_blank" rel="noopener noreferrer">Index Page</a></td> <td class="tg-0pky"><a href="https://planety.github.io/prologue/coreapi/application.html" target="_blank" rel="noopener noreferrer">Search Page</a></td> </tr> <tr> <td class="tg-c3ow">Full API</td> <td class="tg-0pky"><a href="https://planety.github.io/prologue/plugin/theindex.html" target="_blank" rel="noopener noreferrer">Index Page</a></td> <td class="tg-0pky"><a href="https://planety.github.io/prologue/plugin/plugin.html" target="_blank" rel="noopener noreferrer">Search Page</a></td> </tr> </tbody> </table>

Welcome to write your own experience with Prologue at our wiki. To get familiar with the code structure, use DeepWiki: Ask DeepWiki

Features

  • Core

    • Configure and Settings
    • Context
    • Param and Query Data
    • Form Data
    • Static Files
    • Middleware
    • Powerful Routing System(based on nest)
    • Cookie
    • Startup and Shutdown Events
    • URL Building
    • Error Handler
  • Plugin

    • I18n
    • Basic Authentication
    • Minimal OpenAPI support
    • Websocket support
    • Mocking test
    • CORS Response
    • Data Validation
    • Session
    • Cache
    • Signing
    • Command line tools
    • Cross-Site Request Forgery
    • Clickjacking Protection

Installation

First you should install Nim language which is an elegant and high performance language. Follow the instructions and set environment variables correctly.

Then you can use nimble command to install prologue.

bash
nimble install prologue

Chronos Backend

Prologue can use chronos instead of asyncdispatch via the kairos HTTP server:

nim
requires "prologue[kairos]"

Or without nimble, pass -d:asyncBackend=chronos to the compiler. No code changes needed — your handlers work with both backends.

Usages

Hello World

nim
import prologue proc hello*(ctx: Context) {.async.} = resp "<h1>Hello, Prologue!</h1>" let app = newApp() app.get("/", hello) app.run()

Run app.nim ( nim c -r app.nim ). Now the server is running at localhost:8080.

More examples

Extensions

If you need more extensions, you can refer to awesome prologue and awesome nim.

Donations

Thanks for supporting me!

https://github.com/sponsors/planety

Stars

Stargazers over time

Contributors

Showing top 12 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from planety/prologue via the GitHub API.Last fetched: 6/1/2026