okra | C99 URI parser library. |
| download: http://git.y1.nz/archives/okra.tar.gz | |
| README | Files | Log | Refs |
README
1 OKRA - [RFC3986]-compliant URI Parser in pure C99
2
3 ####
4 #
5 # Okra is a [RFC3986]-compliant URI Parser, implemented as a single-header, pure
6 # C99 library with no outside dependencies. It was developed for use in various
7 # components of the [bro](http://git.y1.nz/bro) browser project: a browser that
8 # uses the base operating system, instead of building additional OS-shaped
9 # software on top of it.
10 #
11 ####
12
13 Goals
14 - Conformant to [RFC3986]
15 - Robust and resilient to bad inputs
16 - A simple and easy-to-use API
17 - Lightweight, no outside dependencies
18
19 Non-Goals
20 - Optimal execution speed. It's plenty fast by virtue of being written in C,
21 and using O(N) algorithms.
22 - Optimal memory usage. Other things are more important.
23 - Support for encodings other than ascii. It is the client's responsibility if
24 they want to use something else.
25
26 ###
27
28 Build
29 First, update config.mk to reflect your system's configuration and your
30 preferences. Then, run `make` to build okra.a as well as the test binaries,
31 then `make install` with permissions necessary to install it on your system.
32
33 Testing
34 After building them, you can run all the tests by calling `test/all`, or
35 by individually calling the test/* binaries. The build also produces
36 a program for manually playing with the library: `okra`, which you can call
37 with one URI (to parse it), or two URIs (to resolve the second reference
38 as relative to the first).
39
40 ###
41
42 Contributing
43 There are probably plenty of easy-to-fix issues in this repo, as this project
44 is very recent. To contribute, send emails with patches to emma@y1.nz :)
45 "And if you use AI, you go to hell before you die."
46 --Mario Mario
This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.