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
Documentation | Index Page | |
Core API | Index Page | Search Page |
Full API | Index Page | Search Page |
Installation
First you should installNim language which is an elegant and high performance language. Follow theinstructions and set environment variables correctly.
Then you can usenimble
command to install prologue.
Prologue
also provides some extensions. You can uselogue extension
to install all of them. If you just want to install one of them, you can uselogue extension module
for examplelogue extension redis
.
Usage
Hello World
# app.nimimportprologueprochello*(ctx:Context){.async.}=resp"<h1>Hello, Prologue!</h1>"letapp=newApp()app.addRoute("/",hello)app.run()
Runapp.nim (nim c -r app.nim
). Now the server is running atlocalhost:8080
.
Another example
# app.nimimportprologueimportprologue/middlewares# Async Functionprochome*(ctx:Context){.async.}=resp"<h1>Home</h1>"prochelloName*(ctx:Context){.async.}=resp"<h1>Hello, "&ctx.getPathParams("name","Prologue")&"</h1>"procdoRedirect*(ctx:Context){.async.}=respredirect("/hello")proclogin*(ctx:Context){.async.}=resploginPage()procdo_login*(ctx:Context){.async.}=respredirect("/hello/Nim")letsettings=newSettings(appName="Prologue")varapp=newApp(settings=settings)app.use(debugRequestMiddleware())app.addRoute("/",home,@[HttpGet,HttpPost])app.addRoute("/home",home,HttpGet)app.addRoute("/redirect",doRedirect,HttpGet)app.addRoute("/login",login,HttpGet)app.addRoute("/login",do_login,HttpPost,middlewares=@[debugRequestMiddleware()])app.addRoute("/hello/{name}",helloName,HttpGet)app.run()
Runapp.nim (nim c -r app.nim
). Now the server is running atlocalhost:8080
.
More examples
Extensions
If you need more extensions, you can refer toawesome prologue andawesome nim.
Donations
Thanks for supporting me.
https://github.com/sponsors/planety