Announcing OpenADS

741 views
Skip to first unread message

antonio....@gmail.com

unread,
May 2, 2026, 8:53:45 PMMay 2
to Harbour Users
https://github.com/FiveTechSoft/OpenADS

we do appreciate your comments about it

best regards

marcos...@gmail.com

unread,
May 2, 2026, 10:11:40 PMMay 2
to Harbour Users

fdaniele

unread,
May 3, 2026, 1:10:49 AMMay 3
to Harbour Users
Mr. Linares, Thank you for existing !!   😂

Nenad Batoćanin

unread,
May 3, 2026, 11:22:59 AMMay 3
to harbou...@googlegroups.com

If you can do this with a claude, the sky is the limit :)

 

Open source ADS will certainly be a fascinating thing.

 

Regards, NB

--
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
Unsubscribe: harbour-user...@googlegroups.com
Web: https://groups.google.com/group/harbour-users
---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/harbour-users/8c570094-2575-46be-ad69-f97577825a69n%40googlegroups.com.

Zastava EFI

unread,
May 3, 2026, 3:17:04 PMMay 3
to harbou...@googlegroups.com
Hello,
Do you think openADS will work like the old ADS?

Best Regards

antonio....@gmail.com

unread,
May 4, 2026, 10:16:59 AMMay 4
to Harbour Users
After building in just one month Harbour Builder for Windows, Mac and Linux using Claude Code, I thought about something more challenging, and thats how OpenADS project idea arrived.

I must admit I am really impressed about the quality of code and superb design Claude Code is using. You can review the GitHub repo source code and check it for yourself.
Claude Code has built the roadmap, the steps, the testers... all of it comes from its AI engine and info grabbed from the Harbour project source code. I just observe how it builds it. I have not coded a single line of it.

No reverse engineering has been done at all. I carefully asked Claude Code to stay legally safe. If there are any objections, we will remove the repo. There is no commercial interest at all in this.
Please review the project license. 

best regards

Zastava EFI

unread,
May 4, 2026, 11:18:23 AMMay 4
to harbou...@googlegroups.com
Hello again :)

Do you think open-ads will work under Clipper?

Best Regards

Francesco Perillo

unread,
May 4, 2026, 12:17:37 PMMay 4
to harbou...@googlegroups.com
Hi Antonio,
in order to understand how good is AI for programmers (I attended a brainstorming call this morning that was both entusiatic and disturbing) can you please share one "session" or how it is called, an interaction with Claude Code where you ask to do something and how it works it out? And how many "credits" it uses.

Outcomes from the session today was: "what happens when the credits end?" "what happens if we switch AI?" "what happens if we manually change the code?" "if Claude develops, what should we do with the developers? get rid of them?" "Who to blame if a bug slips in the code tests?"

Anyway, really impressive code (despite I don't actually know what ADS really is... a double faced, dbf/sql database?)

Francesco

marcos...@gmail.com

unread,
May 4, 2026, 4:14:43 PMMay 4
to Harbour Users
Hello

SAP Advantage Database Server (ADS) is an embedded client-server database engine that enables your Harbour/xHarbour applications to transition from traditional DBF files to a transactional, secure, and scalable architecture without rewriting your code.

More information at the following link

https://miniguiextended.blogspot.com/2026/05/arquitectura-y-optimizacion-del-rddads.html

Best regards

Marcos Jarrin

antonio....@gmail.com

unread,
May 4, 2026, 4:49:44 PMMay 4
to Harbour Users
Tests: 249 / 4181. 0.3.x = 9 milestones. Project ~62%

marcop...@gmail.com

unread,
May 5, 2026, 10:36:13 AMMay 5
to Harbour Users

One of my long-standing wishes is that someone would take over the SQLRDD library from xHarbour and actively maintain and improve it.

It’s a powerful tool and, in my opinion, a great gateway for developers who want to move away from DBF files and start using SQL databases with minimal initial effort. At the same time, it offers plenty of room to gradually evolve and enhance applications over time.

Having an actively maintained SQLRDD would make a huge difference for the Harbour/xHarbour community and could help many developers modernize their systems more smoothly.

antonio....@gmail.com

unread,
May 5, 2026, 1:07:14 PMMay 5
to Harbour Users
>  One of my long-standing wishes is that someone would take over the SQLRDD library from xHarbour and actively maintain and improve it.

You can easily do it yourself using Claude Code or OpenClaude + DeepSeek-v4-flash

best regards

rjvand...@gmail.com

unread,
May 8, 2026, 4:13:19 AMMay 8
to Harbour Users
Antonio,
We support ADS inside our product X#.
Even though you could see X# as a competitor to Harbour, it would probably be a good idea to work together on this.
Please let me know if we can help with this.

Robert

Op zondag 3 mei 2026 om 02:53:45 UTC+2 schreef antonio....@gmail.com:

antonio....@gmail.com

unread,
May 8, 2026, 5:26:40 AMMay 8
to Harbour Users
Dear Robert,

Thank you very much for your message. 

You are very welcome and we do appreciate your feedback very much. The more we cooperate the better for all.

Currently Claude Code is working on testing Harbour's ADS RDD tests with OpenADS. We are in a 92.8% compatibility level.
We are quite close to have it ready for real apps testing !

Please feel free to email me to antonio....@gmail.com or whatsapp me to +34 722461100. Lets join forces on this and lets help the entire xbase community!

best regards

antonio....@gmail.com

unread,
May 8, 2026, 5:54:20 AMMay 8
to Harbour Users
96.6% ...

antonio....@gmail.com

unread,
May 8, 2026, 9:18:05 AMMay 8
to Harbour Users
https://github.com/FiveTechSoft/OpenADS/releases/tag/v1.0.0-rc8

Addresses XSharp-Project feedback (Robert van der Hulst):Dual x64+x86 ZIP: bundle now contains both ace64.dll and ace32.dll plus matching openads_serverd_{x64,x86}.exe / openads_bench_{x64,x86}.exe. X#, Harbour-x86, and legacy Clipper apps all pick the right bitness without a separate download.

Static-linked mbedtls 3.6.2: zero runtime libssl / libcrypto / mbedtls DLL dependency. Verified via dumpbin /dependents on both bitnesses — only KERNEL32, WS2_32, bcrypt, MSVCP140, VCRUNTIME, and Windows ucrt api-ms-win-crt-* show up.
openads_serverd --port <N> plus an explicit "port 6262 is the SAP Advantage Database Server default" hint when the bind clashes with a running ADS service.

tools/bench/README.md documents that openads_bench synthesises its own three-column DBF (ID N(8,0), TAG C(4), AMT N(8,2)) on each run from a fixed seed; nothing is shipped, fully reproducible.

Built on Windows 11 / VS 2022 (MSVC 14.37) with -DOPENADS_WITH_TLS=ON.

bedipr...@gmail.com

unread,
May 8, 2026, 3:22:39 PMMay 8
to Harbour Users
Hi Antonio

I am curious about the term used as OpenADS so pinging here 

Does it implement SERVER side also ?
If yes, does it support MT applications ?

Pritpal Bedi
a student of software analysis & concepts

antonio....@gmail.com

unread,
May 9, 2026, 10:19:15 AMMay 9
to Harbour Users
Dear Pritpal,

Yes, OpenADS implements both client and server.

  Server: openads_serverd (Windows/Linux/macOS binaries in every release). Speaks an OpenADS-native TCP wire
  protocol; clients connect via:

      AdsConnect60("tcp://host:port/data_dir", ...)

  The same ace64.dll / ace32.dll / libace64.so / libace64.dylib also runs as LocalServer (in-process DLL, no daemon needed) selected via:

      AdsConnect60(path, ADS_LOCAL_SERVER, ...)

  MT support: yes, with the standard caveats every ADS-compatible engine has.

    - The ABI surface is thread-safe — global registry protected by a recursive mutex; per-thread error state via thread_local.
    - 1 ADSHANDLE per thread is the recommended pattern. 
      Don't share a single connection / table / index handle across threads without your own external
      synchronisation.
    - Record / table locks go through LockMgr matching ADS semantics.
    - Wire client serialises requests on a single RemoteConnection; for real parallelism over tcp://, each thread should call AdsConnect60 itself.

  There's a multi-threaded stress harness at tools/stress/openads_concurrency_stress that spawns N workers, each with its own connection, doing
  concurrent append + lock + read against a shared DBF.

best regards

Alex Strickland

unread,
May 9, 2026, 10:38:14 AMMay 9
to harbou...@googlegroups.com

Hi Antonio

I *think* I remember reading that ADS used UDP rather than TCP/IP.

-- 

Regards

Alex

antonio....@gmail.com

unread,
May 10, 2026, 11:54:59 AMMay 10
to Harbour Users
Correct. ADS default = UDP port 6262 for wire protocol. TCP optional fallback.

  Implication for OpenADS: if emulating wire-compat with real ADS clients, UDP listener needed. Current repo TCP-only
  (recent commits ref TCP_NODELAY, Nagle).

UDP advantages
  - No handshake. First packet = request. Lower latency on cold connect.
  - No connection state on server. Cheap to scale to thousands of idle clients (ADS use case: many fat clients, mostly
  idle).
  - No head-of-line blocking. Lost packet stalls only that request, not stream behind it.
  - No Nagle, no delayed-ACK pathologies. Each datagram flushed immediately.
  - LAN-friendly. ADS designed for trusted LAN — packet loss near zero, retransmit logic stays cheap.
  - Smaller per-packet overhead (8B UDP header vs 20B TCP + options).
  - Server can reply from different socket / multicast discovery trivial.

  UDP disadvantages
  - No reliability. App must implement seq numbers, ACKs, retransmit, timeout — ADS does this in protocol layer.
  - No ordering. App must reassemble.
  - MTU limit ~1472B payload on Ethernet. Bigger results = fragmentation (IP-layer, fragile) or app-level chunking. ADS
  chunks.
  - No congestion control. WAN / VPN / wifi = bad. Real-world ADS over VPN = pain point, vendor added TCP fallback.
  - NAT traversal harder. Stateless mappings expire. Firewalls often block UDP by default.
  - No flow control. Fast sender drowns slow receiver.
  - TLS not native. DTLS exists but rarely used; ADS encryption sits above UDP, custom.
  - Debug harder. tcpdump fine, but no netstat connection view, no Wireshark "Follow stream" semantics same way.

  Net for OpenADS
  - TCP-only path = simpler, works over VPN/WAN, modern default.
  - UDP path = needed only for byte-level wire compat with unmodified ADS clients pinned to UDP. Big lift:
  seq/ACK/retransmit/chunking layer.
  - Most ADS clients support TCP fallback via connection string. Recommend TCP-first, UDP later if compat demands.
Reply all
Reply to author
Forward
0 new messages