OpenADS — Documentation (English)
OpenADS is a free, clean-room implementation of an
ADS-compatible database engine. It is a drop-in replacement
for the Advantage Client Engine (ace32.dll / ace64.dll /
libace.so) — Harbour / Clipper applications that link against
contrib/rddads keep working without recompilation.
Current release: v1.0.0-rc29.
What’s in here
- Getting started — install, first build, smoke test.
- Architecture — five-layer architecture (ABI / Session / SQL / Engine / Platform).
- Wire protocol — formal spec of the OpenADS-native TCP / TLS wire (frame layout, every opcode, payload format, error semantics, versioning).
- Main flows — interactive single-page sequence
walk-through of the eight canonical call paths (local DBF,
remote TCP, SQL pipeline, Studio HTTP, AOF/Rushmore, memo I/O,
transactions, wire-protocol opcodes), backed by
assets/flows.json. - Data Dictionary — clean-room
.addtext format + theengine::DataDictAPI + REST surface. - Studio (web console) — administer an OpenADS database from any browser through the embedded HTTP console (Remote Server or LocalServer mode).
- Benchmarks — cross-platform SQL workload numbers + AOF (Rushmore) + wire-protocol xbrowse repaint.
- rddads / X# RDD compat — Harbour
contrib/rddadsand X#AXDBFCDXcompatibility surface (rc19 M12.22 / M12.23). - Service deployment — run
openads_serverdas a Windows Service / systemd unit / macOS launchd plist (rc14). - TLS deployment — terminate HTTPS in front of Studio with Caddy / nginx / stunnel / SSH tunnel.
- Ordinal compatibility — fix the Windows “ordinal NNN not found” loader error when an app’s import table references SAP-style ordinals.
- Known issues — current open items.