🧢 ajan framework

ajan project is designed to unlock Golang's greatest strength—its standard library—by enabling you to harness it with maximum robustness and flexibility. Rather than reinventing the wheel, this project builds upon Golang's core, providing you with a continuously updated, battle-tested foundation. At the same time, it offers flexible structures that let you configure and extend the standard library to meet your unique needs.
📂 Components
| Component |
Description |
| cachefx |
Flexible caching solution with support for Redis and other backends |
| configfx |
Configuration management with support for multiple sources including environment variables and files |
| connfx |
Connection management and registry for databases, caches, and external services |
| datafx |
Database access layer supporting Postgres, MySQL, and SQLite |
| di |
Lightweight yet powerful dependency injection container |
| eventsfx |
Event handling and pub/sub system |
| grpcfx |
gRPC service integration and utilities |
| httpclient |
HTTP client utilities and helpers for external API communication |
| httpfx |
HTTP service framework with routing and middleware support |
| lib |
Common utilities and shared functionality including network, crypto, and string helpers |
| logfx |
Structured logging with pretty-printing and OpenTelemetry support |
| metricsfx |
Metrics collection and monitoring utilities |
| processfx |
Process and goroutine lifecycle management with graceful shutdown handling |
| queuefx |
Message queue integration with RabbitMQ support |
| results |
Structured error handling and result types |
| sampleapp |
Complete example application demonstrating ajan framework usage and best practices |
| types |
Custom data types including metric types with unit suffix support |
🙋🏻 FAQ
Want to report a bug or request a feature?
If you're going to report a bug or request a new feature, please ensure first
that you comply with the conditions found under
@eser/directives.
After that, you can report an issue or request using
GitHub Issues. Thanks in advance.
Want to contribute?
It is publicly open for any contribution from the community. Bug fixes, new
features and additional components are welcome.
If you're interested in becoming a contributor and enhancing the ecosystem,
please start by reading through our CONTRIBUTING.md.
If you're not sure where to begin, take a look at the
issues labeled good first issue and
help wanted. Reviewing closed issues can also give you a sense of the types of
contributions we're looking for and you can tackle.
If you're already an experienced OSS contributor, let's take you to the shortest
path: To contribute to the codebase, just fork the repo, push your changes to
your fork, and then submit a pull request.
Requirements
Versioning
This project follows Semantic Versioning. For the
versions available, see the
tags on this repository.
License
This project is licensed under the Apache 2.0 License. For further details,
please see the LICENSE file.
To support the project...
Visit my GitHub Sponsors profile at github.com/sponsors/eser