{"id":25023187,"url":"https://github.com/eser/ajan","last_synced_at":"2025-09-23T16:53:04.884Z","repository":{"id":273773518,"uuid":"920806265","full_name":"eser/ajan","owner":"eser","description":null,"archived":false,"fork":false,"pushed_at":"2025-09-08T15:47:31.000Z","size":666,"stargazers_count":6,"open_issues_count":8,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-14T10:43:07.902Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eser.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["eser"]}},"created_at":"2025-01-22T20:00:54.000Z","updated_at":"2025-06-13T14:32:56.000Z","dependencies_parsed_at":"2025-02-13T00:25:57.152Z","dependency_job_id":"52c640e7-1228-4497-8492-4fb10ff47427","html_url":"https://github.com/eser/ajan","commit_stats":null,"previous_names":["eser/ajan"],"tags_count":38,"template":false,"template_full_name":null,"purl":"pkg:github/eser/ajan","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eser%2Fajan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eser%2Fajan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eser%2Fajan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eser%2Fajan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eser","download_url":"https://codeload.github.com/eser/ajan/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eser%2Fajan/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276613275,"owners_count":25673399,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-23T02:00:09.130Z","response_time":73,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-05T14:37:22.614Z","updated_at":"2025-09-23T16:53:04.847Z","avatar_url":"https://github.com/eser.png","language":"Go","funding_links":["https://github.com/sponsors/eser"],"categories":[],"sub_categories":[],"readme":"# 🧢 ajan framework\n\n[![codecov](https://codecov.io/gh/eser/ajan/branch/main/graph/badge.svg?token=w6s3ODtULz)](https://codecov.io/gh/eser/ajan)\n[![Build Pipeline](https://github.com/eser/ajan/actions/workflows/build.yml/badge.svg)](https://github.com/eser/ajan/actions/workflows/build.yml)\n\n`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.\n\n## 📂 Components\n\n|         Component         | Description |\n| ------------------------- | ----------- |\n| [cachefx](./cachefx/)     | Flexible caching solution with support for Redis and other backends |\n| [configfx](./configfx/)   | Type-safe configuration management with multiple sources, environment-aware loading, and validation |\n| [connfx](./connfx/)       | Behavior-based connection management and registry with self-registering adapters for databases, caches, and external services |\n| [datafx](./datafx/)       | Technology-agnostic data persistence layer with automatic marshaling, transactions, caching, and queue support |\n| [di](./di/)               | Lightweight yet powerful dependency injection container with type-safe resolution and interface binding |\n| [eventsfx](./eventsfx/)   | Event handling and pub/sub system with synchronous and asynchronous processing |\n| [grpcfx](./grpcfx/)       | gRPC service framework with reflection, graceful shutdown, and middleware support |\n| [httpclient](./httpclient/) | Resilient HTTP client with circuit breaker pattern, exponential backoff, and retry mechanisms |\n| [httpfx](./httpfx/)       | HTTP service framework with routing, middleware, OpenAPI generation, and graceful shutdown |\n| [lib](./lib/)             | Comprehensive utility library with network, crypto, environment, string, and data manipulation helpers |\n| [logfx](./logfx/)         | Extended structured logging with OpenTelemetry-compatible levels, correlation IDs, and OTLP export |\n| [metricsfx](./metricsfx/) | OpenTelemetry-based metrics collection with simplified builder API and unified observability pipeline |\n| [processfx](./processfx/) | Process and goroutine lifecycle management with graceful shutdown, signal handling, and context propagation |\n| [queuefx](./queuefx/)     | Message queue integration with RabbitMQ support and reliable processing patterns |\n| [results](./results/)     | Structured error handling and result types with attributes and operational context |\n| [sampleapp](./sampleapp/) | Complete example application demonstrating ajan framework usage and best practices |\n| [tracesfx](./tracesfx/)   | Distributed tracing with OpenTelemetry integration, correlation support, and seamless log/metrics correlation |\n| [types](./types/)         | Enhanced data types including metric types with unit suffix support and intelligent parsing |\n\n## 🙋🏻 FAQ\n\n### Want to report a bug or request a feature?\n\nIf you're going to report a bug or request a new feature, please ensure first\nthat you comply with the conditions found under\n[@eser/directives](https://github.com/eser/ajan/blob/dev/pkg/directives/README.md).\nAfter that, you can report an issue or request using\n[GitHub Issues](https://github.com/eser/ajan/issues). Thanks in advance.\n\n### Want to contribute?\n\nIt is publicly open for any contribution from the community. Bug fixes, new\nfeatures and additional components are welcome.\n\nIf you're interested in becoming a contributor and enhancing the ecosystem,\nplease start by reading through our [CONTRIBUTING.md](./.github/CONTRIBUTING.md).\n\nIf you're not sure where to begin, take a look at the\n[issues](https://github.com/eser/ajan/issues) labeled `good first issue` and\n`help wanted`. Reviewing closed issues can also give you a sense of the types of\ncontributions we're looking for and you can tackle.\n\nIf you're already an experienced OSS contributor, let's take you to the shortest\npath: To contribute to the codebase, just fork the repo, push your changes to\nyour fork, and then submit a pull request.\n\n### Requirements\n\n- Golang 1.24 or higher (https://go.dev/)\n\n### Versioning\n\nThis project follows [Semantic Versioning](https://semver.org/). For the\nversions available, see the\n[tags on this repository](https://github.com/eser/ajan/tags).\n\n### License\n\nThis project is licensed under the Apache 2.0 License. For further details,\nplease see the [LICENSE](LICENSE) file.\n\n### To support the project...\n\n[Visit my GitHub Sponsors profile at github.com/sponsors/eser](https://github.com/sponsors/eser)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feser%2Fajan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feser%2Fajan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feser%2Fajan/lists"}