内容简介: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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
浪潮之巅(下册)
吴军 / 人民邮电出版社 / 2013-6 / 45.00元
《浪潮之巅(第2版)(下册)》不是一本科技产业发展历史集,而是在这个数字时代,一本IT人非读不可,而非IT人也应该阅读的作品。一个企业的发展与崛起,绝非只是空有领导强人即可达成。任何的决策、同期的商业环境,都在都影响着企业的兴衰。《浪潮之巅》不只是一本历史书,除了讲述科技顶尖企业的发展规律,对于华尔街如何左右科技公司,以及金融风暴对科技产业的冲击,也多有着墨。此外,《浪潮之巅》也着力讲述很多尚在普......一起来看看 《浪潮之巅(下册)》 这本书的介绍吧!