Latest 0.1.0-beta.1
Homepage https://github.com/shenruisi/prengine
License BSD
Platforms ios 7.0
Authors

Contact me
Build Status
GitHub license

Poor Router Engine 一种用来帮助客户端实现更好的路由解决方案的rewrite引擎,可以用于客户端页面路由,模块解耦。

设计

通过prengine,你可以使用部分nginx语法来描写配置文件,prengine将会解析输入的URI,并根
据输入URI进行匹配,应用条件表达式,最后输出替换后的结果和规则。剩余的你可以使用Objective-C,Swift,
或是Java将prengine在iOS或是Android平台上进行封装。

示例

执行示例代码

g++ ../package/prengine_val.cpp ../package/cond_ast.cpp ../package/prengine.cpp  main.cpp
./a.out

安装

直接安装

拷贝package/目录下的prengine.h, prengine.cpp, prengine_val.h, prengine_val.cpp, cond_ast.h,
cond_ast.cpp到目标目录即可。

获取.a文件

进入package/目录 运行make 在bin/目录下获取.a文件。

获取ios平台.a文件

进入package/目录 运行make platform=ios 在bin/目录下获取.a文件。

使用

1.include "prengine.h"

2.调用PRFILE* pr_creat(char *cnt, VAL_HANDlER valhandler)来装载config文件

3.调用PRREWRITE* pr_rewrite_matched_creat(PRFILE *f,const char *uri) 传入PRFILE句柄和需要转化的URI,得到相应的PRREWRITE对象。

4.通过const char *pr_getserver(PRREWRITE *),const char *pr_getscheme(PRREWRITE *),const char *pr_getoutval(PRREWRITE *),const char *pr_getrule(PRREWRITE *)
来获取PRREWRITE对象的不同属性。

5.调用void pr_rewritefree(PRREWRITE *)释放PRREWRITE对象。

变量注入

如何在config文件中使用自定义变量(eg. 在config中使用$test)?

“`c++
pr_id your_handler(const char *vname){
if(strcmp(vname, "test") == 0){
return pr_yes();
}
return pr_undefined();
}

pr_creat(f /PRFILE句柄/,your_handler);

Latest podspec

{
    "name": "prengine",
    "version": "0.1.0-beta.1",
    "summary": "a static library of prengine",
    "description": "u4e00u79cdu7528u6765u5e2eu52a9u5ba2u6237u7aefu5b9eu73b0u66f4u597du7684u8defu7531u89e3u51b3u65b9u6848u7684rewriteu5f15u64ceuff08mobile routeruff09",
    "homepage": "https://github.com/shenruisi/prengine",
    "license": "BSD",
    "authors": {
        "shen yin": "[email protected]"
    },
    "platforms": {
        "ios": "7.0"
    },
    "source": {
        "http": "https://github.com/shenruisi/prengine/files/765799/prengine-0.1.0-beta.1.zip"
    },
    "vendored_libraries": "libprengine-0.1.0-beta.1.a",
    "libraries": "z"
}

Pin It on Pinterest

Share This