8个稳定版本

1.3.1 2021年3月29日
1.3.0 2021年1月16日
1.2.0 2020年12月22日
1.1.1 2020年11月10日
1.1.0 2020年10月28日

#1297 in 解析器实现


rhymuweb 中使用

自定义许可协议

120KB
2.5K SLoC

Uri (rhymuri)

这是一个库,实现了IETF RFC 3986,“统一资源标识符(URI):通用语法”。

Crates.io Documentation

有关此库的Rust实现的更多信息,请参阅crate文档

URI是一个紧凑的字符序列,用于标识抽象或物理资源。URI的一种常见形式是统一资源定位符(URL),用于引用Web资源

http://www.example.com/foo?bar#baz

另一种URI是路径引用

/usr/bin/zip

此库的目的是提供一个Uri类型来表示URI,并提供从字符串表示形式解析URI以及从其各个组件组装URI的函数。

这是一个多语言库,包含以下编程语言的独立实现

  • C++
  • Rust

构建C++实现

构建了一个便携式库,它仅依赖于C++11编译器和标准库,因此应该几乎支持任何平台。以下是流行平台推荐的工具链。

  • Windows -- Visual Studio (Microsoft Visual C++)
  • Linux -- clang 或 gcc
  • MacOS -- Xcode (clang)

此库不是独立的。它是为了包含在一个更大的解决方案中,该解决方案使用CMake生成构建系统和构建将链接到库的应用程序。

构建过程中有两个不同的步骤

  1. 使用CMake生成构建系统
  2. 使用兼容CMake的工具链进行编译、链接等

先决条件

  • CMake版本3.8或更高版本
  • 与CMake兼容的C++11工具链,适用于您的开发平台(例如Windows上的Visual Studio

构建系统生成

从解决方案根目录使用 CMake 生成构建系统。例如

mkdir build
cd build
cmake -G "Visual Studio 15 2017" -A "x64" ..

编译、链接等

可以使用 CMake 或工具链的 IDE 构建。对于 CMake

cd build
cmake --build . --config Release

许可

许可协议为 MIT 协议

依赖

约 2MB
约 47K SLoC