支持多种编程语言混合开发 Web 应用的通用服务器 hi-nginx-1.4.2 已经发布了。
此次发布包含多项重要更新:
支持 Python 2 和 3,通过编译选项--with-http-hi-python-version
删除 boost.python 依赖,优化 Python 3 兼容性,性能有所提高
支持 lua 和 luajit,通过编译选项 --with-http-hi-lua-version
为 Python 专门定制了 hi.py 框架,单一入口,类似 bottle 或者 flask 一样,对性能有一定影响,但还是比 bottle 和 flask 快得多
为 php7 专门定制了类似 hi.py 的微型框架,单一入口,类似 bottle 或者 flask 一样,对性能没什么影响
hi.py 示例:
from hi import hi
app =hi()
@app.route(r'^/test/?$',['GET','POST'])
@app.route(r"^/$",['GET'])
def hello_world(req,res,param):
res.header('Content-Type','text/plain;charset=utf-8')
res.content('hello,world')
res.status(200)
@app.route(r"^/client/?$",['GET','POST'])
def client(req,res,param):
res.content('{}<br>{}<br>{}<br>{}<br>{}'.format(req.client(),req.method(),req.uri(),req.user_agent(),req.param()))
res.status(200)
@app.route(r"^/hello/(?P<who>\w+)?$",['GET'])
def hello(req,res,param):
res.content('{}={}'.format('who',param['who']))
res.status(200)
if __name__ == '__main__':
app.run(hi_req,hi_res)
php7 示例:
require_once 'hi/servlet.php';
require_once 'hi/route.php';
class index implements \hi\servlet {
public function handler(\hi\request $req, \hi\response $res) {
$app = \hi\route::get_instance();
$app->add('{^/$}', array('GET'), function ($rq, $rs, &$param) {
$rs->content = 'hello,world';
$rs->status = 200;
});
$app->add('{^/who/(?P<name>\w+)/?$}', array('GET'), function ($rq, $rs, &$param) {
$rs->content = 'hello,'.$param['name'];
$rs->status = 200;
});
$app->add('{^/phpinfo/?$}', array('GET'), function($rq, $rs, &$param) {
ob_start();
phpinfo();
$rs->content = ob_get_contents();
$rs->status = 200;
ob_end_clean();
});
$app->run($req, $res);
}
}
简介:
它既是 web 服务器,也是 application 服务器。
它是 NGINX 的超集。
它性能强劲,易于开发,部署方便。
它支持多种语言混合开发 web 应用:
C++
Python
Lua
Java
PHP
gitbook: https://doc.hi-nginx.com/
引用来自“ChengShuai”的评论
nginx最新版本支持grpc了,不知道hi支不支持,或者有没有这方面的计划?