/lua-rax

Lua binding for rax (A radix tree implementation in ANSI C)

Primary LanguageC

路由 RadixTree

lua-rax 是在 Lua 中实现的自适应 基数树 , 基于 rax 实现。

用于替换 wlua 框架中的 lua-r3 路由库。

规则实现参考 lua-resty-radixtree

路径匹配规则

1. 完全匹配

/blog/foo

此时只能匹配 /blog/foo

2. 前缀匹配

/blog/bar*

它将匹配带有前缀 /blog/bar 的路径, 例如: /blog/bar/a/blog/bar/b/blog/bar/c/d/e/blog/bar 等。

3. 匹配优先级

完全匹配 -> 深度前缀匹配

以下是规则:

/blog/foo/*
/blog/foo/a/*
/blog/foo/c/*
/blog/foo/bar
路径 匹配结果
/blog/foo/bar /blog/foo/bar
/blog/foo/a/b/c /blog/foo/a/*
/blog/foo/c/d /blog/foo/c/*
/blog/foo/gloo /blog/foo/*
/blog/bar not match

4. 参数匹配

示例:

/blog/:name

会匹配 /blog/dogblog/cat

更多使用方法参考 test.lua

参考