21 lines
1.1 KiB
Markdown
21 lines
1.1 KiB
Markdown
# url.c
|
|
This is a small library to parse and manipulate URLs in conformance to RFC 3986 and WHATWG.
|
|
|
|
It features
|
|
* No allocations
|
|
* No dependencies
|
|
* The ability to switch between RFC 3986 and WHATWG with a flag
|
|
* Relative reference parsing and resolution
|
|
* URL normalization
|
|
* Doesn't rely on null-terminated strings
|
|
|
|
# Usage
|
|
You just copy paste `url.h` and `url.c` in your source tree and compile them as usual.
|
|
|
|
Some example programs are provided in the `examples/` folder. To compile them, run `build.bat` on Windows or `build.sh` on Linux.
|
|
|
|
# Testing
|
|
The parser and reference resolver is tested against the URL section of the [web platform tests](https://github.com/web-platform-tests/wpt). Note that not all tests pass. This is due to the parser not doing any normalization and not supporting more niche features such as converting `\` characters to `/` or supporting drive letters like `C:` in the URL's path.
|
|
|
|
To run the test suite, `cd` into `tests/` and compile the test runner using `build.sh` (Linux) or `build.bat` (Windows). Then, run `./test.out` (Linux) or `./test.exe` (Windows).
|