@x1.pub/rui
v0.0.38
Published
Rui is a TypeScript-based Node.js server-side framework
Maintainers
Readme
Overview
Rui is a high-performance Node.js server framework built on TypeScript, supporting http/https/http2, and designed for developers who prioritize ultimate efficiency and development experience.
Compared with mainstream frameworks like Koa, Rui has undergone targeted optimizations in its underlying architecture, achieving faster route matching and request processing capabilities, and maintaining stable performance under high-concurrency scenarios.
Adhering to the design concept of Ready to Use Out of the Box, the framework comes with a series of essential plugins frequently used in development (such as route management, middleware mechanism, request parsing, etc.), enabling developers to quickly set up a fully functional server application without additional configuration. Meanwhile, Rui also retains high flexibility, supporting the extension of functionality through a custom plugin mechanism to meet the personalized needs of different business scenarios.
Whether you're rapidly developing a small project or building a complex enterprise-level application, Rui can provide you with efficient and reliable technical support.
Installation
npm install @x1.pub/ruiSimple Example
import Rui from '@x1.pub/rui' // equals: import Rui from '@x1.pub/rui/http'
// Additionally, you can:
// import Rui from '@x1.pub/rui/http2'
// import Rui from '@x1.pub/rui/http2s'
// import Rui from '@x1.pub/rui/https'
const rui = Rui()
rui.addMiddleware(async (ctx, next) => {
console.log(`hi, ${ctx.pathname}`)
await next()
console.log(`over, ${ctx.pathname}`)
})
rui.router.get('/', async (ctx) => {
ctx.send('rui!')
})
rui.addPlugin((rui) => {
rui.router.all('/test', (ctx) => {
ctx.send('test!')
})
rui.router.post('/user/:id', (ctx, next) => {}, (ctx) => {
ctx.send(ctx.query.id)
})
}, { prefix: '/api/v1'})
rui.addHook('onError', (ctx, err) => {
ctx.send(err)
})
rui.listen(8888, () => {
console.log('Rui HTTP server running at http://localhost:8888')
})