arkoren

mcp
Guvenlik Denetimi
Gecti
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.

SUMMARY

A modular Go toolkit for HTTP services, data, background jobs, and observability. Standard library first, with opt-in drivers.

README.md

Introducing Arkoren: wordmark and stepped A logo on a rose grid.

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
Mail 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 command
cmd/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)

Sonuc bulunamadi