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.8.4.

What’s in here

  • What’s New — summary of changes since v1.0.0-rc29 → v1.8.2 (OrdScope string padding, NTXPL852 collation, and more).
  • Project History — how OpenADS grew from a minimal skeleton into a full ADS-compatible engine (868 commits).
  • Migrating from ADS — map an Advantage install to OpenADS; rollback caveats (CDX error 7017), port 6262, Studio.
  • 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 .add text format + the engine::DataDict API + 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/rddads and X# AXDBFCDX compatibility surface (rc19 M12.22 / M12.23).
  • SQLite backend — open and drive a SQLite database through ACE / rddads via a sqlite:// connection URI.
  • Stored procedures — custom AEP procedures (external DLL/SO) and the built-in sp_* Data Dictionary procedures.
  • Cookbook — runnable, commented Harbour examples (console + ORM tracks), simple → advanced.
  • Service deployment — run openads_serverd as 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.
  • API Reference — complete reference for all 357 Ads* exported functions, organized by category with implementation status.

Other languages

Español · Português


Table of contents


This site uses Just the Docs, a documentation theme for Jekyll.