Prologue
What's past is prologue.
Purpose
Prologue is a Full-Stack Web Framework which is ideal for building elegant and high performance web services.
Reduce magic. Reduce surprise.
Current Work
Now we are working on rewriting network infrastructure.
https://github.com/iocrate/netkit
Also working on http2.
https://github.com/nimlight/zest
Documentation
You can read documentation in https://planety.github.io/prologue.
Feature
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.
Usage
Hello World
# app.nim
import prologue
proc hello*(ctx: Context) {.async.} =
resp "<h1>Hello, Prologue!</h1>"
let settings = newSettings()
var app = newApp(settings = settings)
app.addRoute("/", hello)
app.run()
Run app.nim.Now the server is running at localhost:8080.
Another example
# app.nim
import prologue
import prologue/middlewares/middlewares
# Async Function
proc home*(ctx: Context) {.async.} =
resp "<h1>Home</h1>"
proc helloName*(ctx: Context) {.async.} =
resp "<h1>Hello, " & ctx.getPathParams("name", "Prologue") & "</h1>"
proc doRedirect*(ctx: Context) {.async.} =
resp redirect("/hello")
proc login*(ctx: Context) {.async.} =
resp loginPage()
proc do_login*(ctx: Context) {.async.} =
resp redirect("/hello/Nim")
let settings = newSettings(appName = "StarLight")
var app = newApp(settings = settings, middlewares = @[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, @[debugRequestMiddleware()])
app.addRoute("/hello/{name}", helloName, HttpGet)
app.run()
Run app.nim.Now the server is running at localhost:8080.
More examples
Stars
from Hacker News https://ift.tt/2A1rT73
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.