simplify the build and move the C server into a directory
[citadel.git] / webcit-ng / README.txt
1
2
3 This is WebCit-NG, a complete refactoring of the WebCit server that will
4 focus on "REST first" and build around that.  The code will be well
5 layered with as little spaghetti as possible.
6
7 Please don't mess with this yet.  I'm only pushing it upstream so it gets backed up.
8
9 Yes, I know the Makefile is built in a way that forces it to recompile everything
10 when you touch even one file.  For the time being this is acceptable.
11
12
13 DESIGN GOALS
14 ------------
15
16 *       Hold as little state as possible
17
18 *       Require NO cleanup.   Killing the process lets the OS reclaim all resources.
19
20 *       As much as possible, resources should be freed by just coming back down the stack.
21         Avoid global variables and thread-local variables as much as possible.
22
23 *       Readability of the code is more important than shaving off a few CPU cycles.
24
25 *       Throw sensitive data such as passwords back and forth in clear text.
26         If you want privacy, encrypt the whole session.  Anything else is false security.
27
28
29
30
31 REST format URLs will generally take the form of:
32
33         /ctdl/objectClass/[container/]object[/operation]
34
35 We are using
36 ------------
37
38 *       libcitadel for information about the Citadel server, some string handling, and the JSON encoder
39 *       Expat for DAV handling
40 *       OpenSSL for TLS