focus on "REST first" and build around that. The server code is well layered
with as little spaghetti as possible.
-Please don't mess with this yet. I'm only pushing it upstream so it gets backed up.
+This is a work in progress and not ready for production use. It is not feature
+complete.
## Design goals
* Hold as little state as possible
* Require NO cleanup. Killing the process lets the OS reclaim all resources.
-* As much as possible, resources should be freed by just coming back down the stack.
- Avoid global variables and thread-local variables as much as possible.
+* As much as possible, resources should be freed by just coming back down the
+ stack. Avoid global variables and thread-local variables as much as possible.
* Readability of the code is more important than shaving off a few CPU cycles.
-* Throw sensitive data such as passwords back and forth in clear text.
- If you want privacy, encrypt the whole session. Anything else is false security.
+* Throw sensitive data such as passwords back and forth in clear text. If you
+ want privacy, encrypt the whole session. Anything else is false security.
REST format URLs will generally take the form of:
/ctdl/objectClass/[container/]object[/operation]
## We are using
-* libcitadel for information about the Citadel server, some string handling, and the JSON encoder
+* libcitadel for Citadel server tooling, string handling, JSON encoder, MIME parser
* Expat for DAV handling
* OpenSSL for TLS
* FontAwesome for icons
## We are NOT using
-* Your favorite javascript library
-* Your favorite CSS framework
+* Third party javascript libraries and/or CSS frameworks