Slashing the ODAC.JS Installation Footprint
Your node_modules directory should not be a graveyard for code you never execute. In the world of enterprise Node.js development, every kilobyte matters, not just for disk space, but for CI/CD cold-start times, container image sizes, and the overall mental overhead of a bloated dependency tree.
At odac.run, we have always championed the Zero Dependency, Maximum Power philosophy. However, even a framework committed to minimal bloat can find itself carrying extra weight. For too long, ODAC.JS bundled drivers for PostgreSQL, MySQL, and Redis as standard dependencies. If you were building a lean SQLite-powered microservice, you were still downloading the entire Postgres client stack.
We decided that "good enough" was no longer good enough.

The Optional Revolution
With the latest release, ODAC.JS has officially moved all database and cache drivers to optionalDependencies. This architectural shift transforms the framework into a "bring your own driver" model. The core remains powerful, but the installation footprint is now exceptionally lean.
When you install ODAC.JS today, you are getting the engine, the router, the view system, and the orchestration logic. You are not getting 50MB of binary drivers for databases you might never use.
Show Me The Code
The transition is seamless. You no longer pay the "bloat tax" upfront. Instead, you simply install the driver that matches your infrastructure.
# For PostgreSQL enthusiasts
npm install pg
# For MySQL / MariaDB deployments
npm install mysql2
# For high-performance caching with Redis
npm install redis
ODAC.JS handles the rest. Our internal Connection Factory has been refined to detect these drivers at runtime. If you attempt to connect to a PostgreSQL database without the pg package, ODAC.JS won't just crash with a cryptic "Module Not Found" error. It will guide you.
A Better Runtime Experience
We believe that framework errors should be helpful, not hostile. If a driver is missing, ODAC.JS intercepts the failure and provides a clear, actionable instruction.
// In your controller or boot logic
const users = await Odac.DB.users.select('*');
If the driver is missing, you'll see a structured error:Database driver "pg" is not installed. Run: npm install pg

CI/CD and Production Edge Cases
This change introduces a small but important shift for your deployment pipelines. If you use npm ci --omit=optional in your CI/CD environment, npm will skip these drivers by default.
To ensure stability, we recommend explicitly listing your chosen driver in your package.json under dependencies. This guarantees that your production environment always has the tools it needs while keeping the framework core decoupled from specific vendor implementations.
Leaner, Faster, Smarter
By moving to optional dependencies, we have reduced the initial installation size of ODAC.JS significantly. This means faster npm install times for your developers and leaner images for your production clusters.
ODAC.JS continues to evolve, proving that you can have Enterprise-Grade features without the enterprise-grade bloat. The core is faster, the footprint is smaller, and the developer experience has never been sharper.