git.y1.nz

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.