dub build # HTTP only
dub build --config=ssl # With HTTPS
dub test # Run unit tests
| File | Purpose |
|---|---|
danode/server.d |
Entry point, socket handling, rate limiting |
danode/client.d |
Per-connection logic, request size cap |
danode/request.d |
HTTP parsing, CGI argument handling |
danode/filesystem.d |
File serving, directory listing |
danode/webconfig.d |
Per-domain configuration parsing |
danode/https.d |
OpenSSL/ImportC bindings |
Always use these — never bypass them:
shellEscape()— wrap all CGI argumentssafePath()— validate all file paths before accesshtmlEscape()— escape any user-controlled output in HTML
- D2 language, compiled with DMD/DUB
- No external dependencies except OpenSSL (optional,
sslconfig) - Per-domain sites live under
www/<domain>/ - Per-domain config in
www/<domain>/web.config
OpenSSL must be compiled from the submodule before dub build --config=ssl:
git submodule update --init --recursive
cd deps/openssl
./Configure linux-x86_64
makeMore exhaustive Linux & Windows instructions: see deps/README.md