内容简介:What's past is prologue.
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
-
Core
- Base on httpbeast and asynchttpserver
- Configure and Settings
- Context
- Param and Query Data
- Form Data
- Static Files
- Middleware
- Simple Route
- Regex Route
- CORS Response
- Signing
- Cookie
- Session
- Cache
- Startup and Shutdown Events
- URL Building
- Data Validation
- Exception Handler
- Cross-Site Request Forgery
- Cross-Site Scripting (XSS) Protection(Karax quote string automatically)
- Clickjacking Protection
- Authentication
- I18n
-
Plugin
- Minimal OpenApi support
- Template(Using Karax Native)
- Test Client(Using httpclient)
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.
nimble 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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Kotlin程序员面试算法宝典
孙伟、楚秦 / 机械工业出版社 / 2018-12 / 69
本书是一本讲解程序员面试笔试算法的书籍。在写法上,除了讲解如何解答算法问题以外,还引入了例子辅以说明,以便读者能够更加容易地理解。 本书将程序员面试笔试过程中的各类算法类真题一网打尽。在题目的广度上,通过各种渠道,搜集了近3年来几乎所有IT企业面试笔试算法高频题目,所选择题目均为企业招聘使用题目;在题目的深度上,本书由浅入深、庖丁解牛式地分析每一个题目,并提炼归纳,同时,引入例子与源代码、时......一起来看看 《Kotlin程序员面试算法宝典》 这本书的介绍吧!