Technical Evaluation: HIX, mod_harbour, mod_harbour v2/v3
Overview
| Technology |
Type |
Status |
Primary Use Case |
| HIX (Harbour Internet eXtension) |
CGI/ISAPI/FastCGI library |
Mature, stable |
Traditional CGI/FastCGI deployments |
| mod_harbour (v1) |
Apache module |
Legacy, unmaintained |
Direct Apache embedding (deprecated) |
| mod_harbour v2/v3 |
Apache module + FastCGI hybrid |
Active development |
High-performance Apache integration |
1. CGI vs. Other Technologies
CGI (HIX default mode)
| Pros |
Cons |
| Simple deployment, no persistent processes |
Process spawn overhead per request |
| Excellent isolation (crash = single request) |
No in-memory session/state sharing |
| Works on any CGI-capable server |
Latency ~10-50ms per request startup |
| Zero configuration on shared hosting |
Difficult connection pooling |
FastCGI (HIX + mod_fcgid / mod_proxy_fcgi)
| Pros |
Cons |
| Persistent processes, connection pooling |
Requires process manager (spawn-fcgi, systemd) |
| 5-10x throughput vs CGI |
Memory leaks in PRG code affect all requests |
| Shared in-memory cache possible |
More complex deployment |
| Works with Nginx, Apache, Lighttpd |
Debugging harder (long-running processes) |
mod_harbour v2/v3 (Apache module)
| Pros |
Cons |
| Native Apache integration, zero spawn latency |
Apache-only (no Nginx) |
| Direct access to Apache API (headers, auth, filters) |
Requires Apache module development knowledge |
| Threaded/prefork MPM support |
Thread-safety concerns with Harbour runtime |
| Best raw throughput for Apache shops |
Smaller community, fewer examples |
2. Apache vs. Other Web Servers
| Factor |
Apache (mod_harbour v2/v3) |
Nginx + FastCGI (HIX) |
IIS (ISAPI/FastCGI) |
| Performance |
Excellent (native) |
Excellent (event-driven) |
Good |
| Stability |
Proven, but module bugs crash worker |
Very high (isolated processes) |
Good |
| Security |
Mature module ecosystem |
Smaller attack surface |
Enterprise features |
| Configuration |
Complex (httpd.conf + module config) |
Simple (proxy_pass) |
GUI + web.config |
| Windows Support |
Good |
Good (via WSL or native) |
Native |
| Concurrency Model |
Prefork/Worker/Event MPM |
Event loop + worker processes |
Thread pool |
Recommendation: For new deployments, Nginx + HIX FastCGI offers the best balance of performance, operational simplicity, and cross-platform support. Use mod_harbour v3 only if you have existing Apache infrastructure and need deep Apache integration (custom auth modules, mod_rewrite logic in Harbour, etc.).
3. Technical & End-User Support
| Aspect |
HIX |
mod_harbour v2/v3 |
| Core Developers |
Pritpal Bedi, Viktor Szakáts, community |
Limited (mostly 1-2 maintainers) |
| Forum/Community |
Active (Harbour users list, FiveWin forums) |
Quiet, fragmented |
| Documentation |
Good (samples, hix.prg headers) |
Sparse, mostly example-based |
| Commercial Support |
Available via FiveTech / consultants |
Rare |
| Bug Fix Velocity |
Moderate (Harbour core releases) |
Slow |
4. File Handling & Third-Party Integration
| File Type |
HIX |
mod_harbour v2/v3 |
| .PRG |
Native (Harbour compiler) |
Native |
| .C / .CPP |
Via hb_pp / inline C (#pragma BEGINDUMP) |
Same + Apache APR hooks |
| .DLL / .SO |
HB_LOADLIBRARY(), hb_dyn* API |
Same, but thread-safety critical |
| Third-party Harbour libs |
hbhpdf, hbxml, hbct, hbziparc, etc. |
Same |
| Database (RDD/ADO/ODBC) |
Full RDD support (DBF, SQL via ADO/ODBC/PostgreSQL/MySQL) |
Same |
| Static Linking |
Supported (larger binary, no runtime deps) |
Supported (larger .so/.dll) |
Critical Note: In mod_harbour threaded mode, any non-thread-safe C library or Harbour code using static globals will corrupt data. HIX FastCGI isolates this per-process.
5. Real-World Use Cases
| Scenario |
Recommended Stack |
Rationale |
| Legacy migration (CGI → modern) |
HIX FastCGI + Nginx |
Drop-in PRG compatibility, gradual migration |
| High-throughput API (10k+ req/s) |
mod_harbour v3 (Event MPM) or HIX + Nginx (prefork) |
Lowest latency, connection reuse |
| Shared hosting / no root |
HIX CGI |
Works everywhere, no config |
| Windows-only, IIS shop |
HIX ISAPI / FastCGI on IIS |
Native IIS integration |
| Complex Apache auth/rewrite logic |
mod_harbour v3 |
Direct ap_hook_* access from Harbour |
| Microservices / containers |
HIX FastCGI (Docker + Nginx) |
Standard cloud-native pattern |
6. Additional Evaluation Points
Memory Footprint
- HIX CGI: ~2-5 MB per request (short-lived)
- HIX FastCGI: ~8-20 MB per persistent worker
- mod_harbour v3: ~15-40 MB per Apache worker (shared Harbour VM)
Scaling Strategy
| Approach |
Horizontal Scaling |
Session Handling |
| HIX FastCGI |
Add workers + load balancer |
External (Redis, DB, file) |
| mod_harbour |
Add Apache workers/servers |
Shared memory (APR) or external |
Debugging & Profiling
- HIX: Standard Harbour debugger (
hbide, hbdbg), logs per request
- mod_harbour: Requires Apache debug build,
gdb attach to worker, harder
Licensing
All three are GPL-compatible (Harbour runtime is GPL with static linking exception). Commercial use permitted with dynamic linking to Harbour RTL.
Summary Recommendation
| Priority |
Stack |
| Maximum compatibility, lowest ops burden |
HIX FastCGI + Nginx |
| Maximum raw throughput on Apache |
mod_harbour v3 (Event MPM) + thread-safe PRG code |
| Legacy CGI apps, zero changes |
HIX CGI (temporary) → migrate to FastCGI |
| Windows/IIS mandate |
HIX ISAPI or FastCGI on IIS |
Avoid: mod_harbour v1 (unmaintained, security risks), CGI for production loads >50 concurrent users.
This evaluation reflects community knowledge as of 2024. For production decisions, run your own load tests (wrk, k6, JMeter) with realistic PRG workloads.
Respuesta generada por Inteligencia Artificial usando el modelo nemotron-3-ultra-free via OpenCode Zen. Puede contener errores; por favor verifiquela antes de aplicar.
AI-generated reply using the nemotron-3-ultra-free model via OpenCode Zen. May contain mistakes; please verify before applying.