added README, license, and configure script
[assman] / README.md
1 assman
2 ======
3
4 About
5 -----
6 Assman is a library for accessing assets (read only access to data files) in
7 multiple ways through a simple file I/O interface designed as a drop-in
8 replacement to C fopen/fread/etc I/O calls. In most cases you can just prefix
9 all your I/O calls with `ass_` and change `FILE*` to `ass_file*`, and it will
10 just work.
11
12 The access modules provided are:
13  - `mod_path`: maps an arbitrary filesystem path to your chosen prefix. For
14    instance, after calling `ass_add_path("data", "/usr/share/mygame")` you can
15    access the data file `/usr/share/mygame/foo.png` by calling
16    `ass_fopen("data/foo.png", "rb")`.
17
18  - `mod_archive`: mounts the contents of an archive to your chosen prefix. For
19    example, after calling `ass_add_archive("data", "data.tar")` you can access
20    the contents of the tarball as if they where contents of a virtual `data`
21    directory.
22
23  - `mod_url`: maps a url prefix to your chosen prefix. For example, after
24    calling `ass_add_url("data", "http://mydomain/myapp/data")` you can access
25    `http://mydomain/myapp/data/foo.png` by calling
26    `ass_fopen("data/foo.png", "rb")`.
27
28 NOTE: `mod_archive` is not implemented yet. Planned support for tar and zip
29 archives.
30
31 License
32 -------
33 Copyright (C) 2018 John Tsiombikas <nuclear@member.fsf.org>
34
35 The assman library is free software. Feel free to use, modify, and/or
36 redistribute it under the terms of the GNU Lesser General Public License
37 version 3, or at your option any later version published by the Free Software
38 Foundation. See COPYING and COPYING.LESSER for details.
39
40 Build
41 -----
42 To build and install assman on UNIX, run the usual:
43
44     ./configure
45     make
46     make install
47
48 The `mod_url` module depends on `libcurl` and uses POSIX threads. If you don't
49 want that dependency, you can disable `mod_url` by passing `--disable-url` to
50 `configure`.
51
52 See `./configure --help` for a complete list of build-time options.
53
54 To cross-compile for windows with mingw-w64, try the following incantation:
55
56     ./configure --prefix=/usr/i686-w64-mingw32
57     make CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar sys=mingw
58     make install sys=mingw