Skip to content

entiqon/entiqon

Repository files navigation

entiqon Entiqon

A structured, intelligent foundation for building queryable, entity-aware Go systems.

Go Reference Go Report Card Build Status Latest Release Documentation License

📦 Packages

  • Common: Shared utilities and helper functions used across multiple modules. Installation: go get github.com/entiqon/common
  • Database: Modular SQL query builder focused on database operations. Installation: go get github.com/entiqon/db

Future modules such as core, auth, http, and others will be added following the modular architecture.


🧭 Doctrine

  • Never panic — always return a token or builder, errors are embedded not thrown.

  • Auditability — preserve user input for logs and error context.

  • Strict validation — invalid expressions rejected early.

  • Delegation — tokens own parsing/validation, builders compose them.

  • Layered validationResolveExpression enforces correctness in three independent stages:

    1. Type validation: only raw strings are accepted; existing tokens (Field, Table, etc.) are rejected with guidance to use Clone().
    2. Classification: expressions are categorized (Identifier, Function, Aggregate, Subquery, Literal, etc.) by syntax.
    3. Resolution: each category applies its own rules for parsing and alias validation.

    This separation keeps the API strict, predictable, and auditable without duplicating rules across layers.


📏 Best Practices

  • 🧼 Clarity over brevity — use explicit method names
  • 🚫 Deprecations are tested and clearly marked
  • 🔐 Validate every path — no silent failures
  • 🧩 Always quote identifiers through the dialect

🧩 Design Patter

  • 📐 Chain → Validate → Compile
  • 🧠 Tag errors with StageToken
  • ⚙️ Compose with safe abstractions
  • 📂 Group test methods visually

📦 Releases


🤝 Contributing

We welcome contributions! 🎉

Please read the CONTRIBUTING.md guide for details on:

  • Writing tests
  • Commit message conventions
  • Documentation updates
  • Release process

For a quick checklist, see PULL_REQUEST_TEMPLATE.md.


📄 License

💡 Originally created by Isidro Lopez 🏢 Maintained by the Entiqon Organization

MIT — © Isidro Lopez / Entiqon Project