arkoren
Health Gecti
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 31 GitHub stars
Code Gecti
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
A modular Go toolkit for HTTP services, data, background jobs, and observability. Standard library first, with opt-in drivers.
arkoren
A modular Go toolkit for HTTP services, data access, background work, and
integrations. Use one package in an existing application or compose a service
from the pieces you need.
Arkoren is a toolkit, not a framework: standard Go types, stdlib-first design,
and explicit composition around net/http, context.Context, and log/slog.
No dependency injection container, automatic discovery, or required lifecycle.
Core has no third-party dependencies; vendor drivers are independent Go modules.
Documentation ·
Quickstart ·
API reference ·
Introducing Arkoren
Services, with your choice of backend
Keep application code against shared service contracts and choose the backend
at construction time. The tables below list shipped implementations, not a
promise of identical provider capabilities. Each service links to its detailed
compatibility matrix; choosing a driver
explains persistence, sharing across replicas, and operational trade-offs.
Data
| Service | Use it for | Local development | Backend drivers |
|---|---|---|---|
| Cache | Typed values, expiry, counters, and locks | Memory | Redis |
| Database | SQL queries, transactions, and migrations | SQLite, including in-memory databases | PostgreSQL, MySQL / MariaDB, SQLite |
| Storage | Read, write, and serve objects | Memory, filesystem | Filesystem, Amazon S3 and compatible stores |
| Search | Typed indexes, text queries, filters, and sorting | Memory | PostgreSQL, Meilisearch, OpenSearch |
Application
| Service | Use it for | Local development | Backend drivers |
|---|---|---|---|
| Broadcasting | Publish and subscribe across processes | Memory | Redis, NATS, RabbitMQ, MQTT (experimental), Amazon SNS / SQS |
| Send messages and attachments | Log output, test fake | SMTP, Resend, Mailgun, Postmark, Amazon SES | |
| Push | Submit encrypted browser notifications | Test fake | Web Push; application-owned subscriptions and service workers |
| Payments | Checkout, refunds, and provider-managed subscriptions where supported | Memory simulation, test fake | Stripe, PayPal, Mollie |
| Feature Flags | Typed flags and subject targeting | Memory | OpenFeature providers, LaunchDarkly |
Background
| Service | Use it for | Local development | Backend drivers |
|---|---|---|---|
| Queues | Dispatch jobs and control retries | Memory | RabbitMQ, NATS JetStream, Amazon SQS, Cloudflare Queues |
| Scheduling | Recurring tasks and deferred runs | Memory | Temporal, Restate |
| Workflows | Coordinate steps, signals, and timers | Memory | Temporal, Restate |
Security
| Service | Use it for | Local / test option | Driver choices |
|---|---|---|---|
| Encryption | Authenticated encryption | Same local algorithms | AES-GCM, ChaCha20-Poly1305 |
| Hashing | Hash, verify, and detect rehash needs | Same local algorithms | Argon2id, bcrypt |
| Secrets | Named secrets and versioned reads | Memory | HashiCorp Vault KV v2, AWS Secrets Manager, Google Secret Manager, Azure Key Vault |
AI
| Service | Use it for | Local / test option | Driver choices |
|---|---|---|---|
| Language Models | Generation, streaming, tools, and embeddings | Test fake; compatible local servers | OpenAI, OpenAI-compatible APIs (capabilities vary) |
Operations
| Service | Use it for | Local / test option | Driver choices |
|---|---|---|---|
| Observability | Traces, metrics, and logs | Memory, test fake | OpenTelemetry / OTLP, Prometheus (metrics) |
Memory drivers keep state in one process and lose it on restart; they do not
coordinate replicas. Test fakes record or simulate calls without contacting a
provider. Every service contract ships a conformance suite in its<service>test package; see testing.
More than service drivers
HTTP capabilities and protocol adapters compose alongside those services;
they are not interchangeable backend drivers.
| Capability | What's included |
|---|---|
| HTTP | Routing, error-returning handlers, request / response helpers, and middleware on net/http |
| Authentication | OAuth 2 / OpenID Connect login and bearer tokens |
| Sessions | Session state backed by your chosen cache; no separate session driver |
| Events | In-process application events; separate from cross-process broadcasting |
| Secure links | Signed links, with storage only when single-use enforcement needs it |
| CAPTCHA | Cloudflare Turnstile and Google reCAPTCHA; application-owned acceptance policy |
| Webhooks | Receivers for Stripe, PayPal, Resend, Mailgun, Postmark, and OpenAI; explicitly registered handlers |
| MCP | Typed application tools, served through the optional official-SDK protocol adapter |
| Application lifecycle | Optional startup, supervised work, and cleanup coordination |
| Foundation libraries | Independent, stdlib-only modules for collections, SQL queries, validation, Problem Details, cryptographic keys, and TLS certificates |
Application keys
and TLS certificates
support offline provisioning. Existing key and certificate files are not
overwritten; changing system root trust is a separate, explicit action.
Get started
Requires Go 1.27 or later. Arkoren is pre-1.0: modules version
independently, and v0 minor releases can break APIs. Read the
compatibility policy
before adopting or upgrading a module. Add core to your existing Go module:
go get arkoren.dev/core
Add only the drivers you use—for example, go get arkoren.dev/driver/redis.
The installation guide
covers module choices; the quickstart
builds a first HTTP service. Native clients remain accessible for vendor-specific
features. Documentation snippets keep error results visible; application code
must check them before using the results.
Working with a coding agent? The agent guide
explains how to install the bundled documentation skill. The website and skill
share the same authored guides; API declarations live on pkg.go.dev.
Contribute
Read the contributing guide before opening an issue or pull
request. Run make for the available commands. From a checkout:
make test MODULE=core PKG=./http/...
make check MODULE=core
Shared Go recipes use GOWORK=off to check each module independently. Race tests
require a C compiler. After guide edits, run make generate and make docs;
see the website contributor guide for Node dependencies
and browser setup.
Repository automation lives in the stdlib-only development commandcmd/arkoren-ci, not the consumer CLI. Run make maintenance-check with the
pinned git-cliff installed to exercise real Git/SSH publication and recovery
fixtures. release notes manages the signed notes PR; release publish separates
tag writes, credential-free public builds and fresh-token prerelease writes.
Neither website nor maintenance-only changes propose module versions.
License
MIT.
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi