ajan

package module
v0.7.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 13, 2025 License: Apache-2.0 Imports: 6 Imported by: 0

README

🧢 ajan framework

codecov Build Pipeline

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 Type-safe configuration management with multiple sources, environment-aware loading, and validation
connfx Behavior-based connection management and registry with self-registering adapters for databases, caches, and external services
datafx Technology-agnostic data persistence layer with automatic marshaling, transactions, caching, and queue support
di Lightweight yet powerful dependency injection container with type-safe resolution and interface binding
eventsfx Event handling and pub/sub system with synchronous and asynchronous processing
grpcfx gRPC service framework with reflection, graceful shutdown, and middleware support
httpclient Resilient HTTP client with circuit breaker pattern, exponential backoff, and retry mechanisms
httpfx HTTP service framework with routing, middleware, OpenAPI generation, and graceful shutdown
lib Comprehensive utility library with network, crypto, environment, string, and data manipulation helpers
logfx Extended structured logging with OpenTelemetry-compatible levels, correlation IDs, and OTLP export
metricsfx OpenTelemetry-based metrics collection with simplified builder API and unified observability pipeline
processfx Process and goroutine lifecycle management with graceful shutdown, signal handling, and context propagation
queuefx Message queue integration with RabbitMQ support and reliable processing patterns
results Structured error handling and result types with attributes and operational context
sampleapp Complete example application demonstrating ajan framework usage and best practices
tracesfx Distributed tracing with OpenTelemetry integration, correlation support, and seamless log/metrics correlation
types Enhanced data types including metric types with unit suffix support and intelligent parsing

🙋🏻 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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BaseConfig

type BaseConfig struct {
	Conn    connfx.Config `conf:"conn"`
	AppName string        `conf:"name" default:"ajansvc"`
	AppEnv  string        `conf:"env"  default:"development"`

	Log        logfx.Config      `conf:"log"`
	Metrics    metricsfx.Config  `conf:"metrics"`
	GRPC       grpcfx.Config     `conf:"grpc"`
	HTTP       httpfx.Config     `conf:"http"`
	HTTPClient httpclient.Config `conf:"http_client"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL