hesape

module
v0.25.3-0...-155a47e Latest Latest
Warning

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

Go to latest
Published: Sep 5, 2026 License: MIT

README

Arandu

arandu-io/hesape

47 packages, one per concern — the collection the framework is built from.

Build Status Go Reference Latest Version License

About hesape

hesape is Guarani for illumination. It is the collection Arandu is built from: one package per concern — authorization, data access, HTTP, views, background work, mail, diagnostics — each independently importable:

import (
    "github.com/arandu-io/hesape/auth"
    "github.com/arandu-io/hesape/http"
    "github.com/arandu-io/hesape/mail"
)

github.com/arandu-io/framework composes these into a running application; nothing stops a project from importing a package here directly.

What it delivers

area packages what it does
authorization & session auth, session, cookie, hashing, encryption, oauth Grant — unexported fields, issued only by Authorize or the named SystemGrant escape hatch — plus the session store, CSRF token, password hashing and signed tokens
data & storage database, cache, redis, filesystem, pagination one repository shape with no ORM, a cache with pluggable stores, a Redis/RESP adapter for both, tenant-scoped file storage, three paginators (offset, simple, keyset)
HTTP & views http, routing, view, html request/response context over net/http, a router with named routes and URL generation, the kyse-to-Go view compiler with HTMX and the delegated client behaviours wired in, an escaped HTML/form builder
background work queue, bus, events, console/scheduling, broadcasting, notifications, mail a job queue where every push carries a Grant, batches and chains of jobs, domain events with an outbox, an in-process scheduler (a goroutine, not a system crontab), channel broadcasting over Redis, multi-channel notifications, mail
diagnostics & quality log, exception, validation, console, testing/arandutest the request Collector this framework exists for, the handler a failed request stops at (and the development error page), a form validator with 108 rules, the vocabulary a project's own commands are written against, a test client with assertions and outbox helpers
foundation & utilities foundation, config, collections, str, support, number, image, jsonschema, process, pipeline, translation process composition run once at boot, typed configuration, generic collections, the string transforms a generator, a router and a validator all need, number/currency formatting, declarative image transforms, typed JSON Schema, external process execution, a value piped through a chain of steps, translated strings

Seven of the 47 export nothing at all, on purpose, and hold only a doc comment explaining why: a dependency-injection container (container — the wiring here is explicit and hand-written, never resolved), a way to attach a method to a type from outside its own package (macroable — a receiver has to be declared where its type is, and Go has no hook for a call that resolves to nothing), reflection over a type's structure (reflection — a type assertion asks at the call site what a runtime lookup would only ask later, and code generation reads go/ast at build time), SSH-driven remote command execution (remote — not built; running a command on another machine is process with the ssh binary as the transport), a home for When and Unless (conditionable — same receiver rule, so every chainable type declares them itself), a tree of interfaces (contracts — an interface belongs to the package that consumes it), and the old top-level scheduler (scheduler — it moved to console/scheduling, and the doc comment names what each symbol became). The package stays on disk so an import that goes looking for the concept finds the reason instead of a path that resolves to nothing.

Assets are embedded, not fetched — one go:embed directive (view/assets.go:21) bundles HTMX 2.0.4, Tailwind CSS 4.3.3, Basecoat 1.0.2 and Arandu's own theme.js and ui.js, served from the application's own origin under /_arandu/assets/. Zero CDN: the Content-Security-Policy is script-src 'self', and a test scans the embedded assets for cdn, unpkg, jsdelivr, googleapis or cloudflare and fails the build if it finds one. There is no directive framework in there either, and that is the same constraint rather than a taste: compiling an attribute into a function needs unsafe-eval, so client behaviour is delegation on data-* attributes that are read as data and never evaluated. Tailwind itself is the standalone binary the CLI downloads, checks against a published SHA-256, and caches — not an npm package. Zero Node anywhere in the tree, checked in CI.

One direct dependency: golang.org/x/crypto, and CI fails a pull request that adds a second — every third-party driver lives in one of the six modules beside the root (redis, queue/connectors/redis, filesystem/s3 and the three under database/connectors), each with its own go.mod, because Go has no optional dependency. 186,122 lines of production code and 87,439 of test, across 314 test files, and go test -race ./... passes.

Install

go get github.com/arandu-io/hesape/auth

Every package is fetched the same way, on its own import path.

The rest of Arandu

arandu-io/framework is what assembles these packages into a running application; aru is the command line; arandu is the skeleton aru new clones; examples is a complete application built on top of all three.

Learning Arandu

The API reference is generated from the doc comments and lives on pkg.go.dev. Every exported symbol carries one, and that is deliberate: it is the documentation that cannot drift from the code, because it sits in the same file.

A guide and a website do not exist yet, and that is a decision rather than a gap: a guide written against an API that still moves is work done twice, and the second time is worse — there is wrong documentation published.

Contributing

See CONTRIBUTING.md. Every commit carries a Signed-off-by line, and before a pull request opens the three commands in that file — gofmt, go vet ./..., go test -race ./... — have to pass in the root module and in each of the six beside it. CI runs those three and three gates on top of them: the exported surface diffed against the last release, which fails an incompatible change that UPGRADE.md does not record; govulncheck; and a check that go.mod still declares the one dependency.

Security Vulnerabilities

Please review our security policy on how to report a vulnerability. Never open a public issue for one.

License

Open-sourced software licensed under the MIT license.

Directories

Path Synopsis
Package twofactor declares what a second factor is: how an authenticator application is enrolled, how the code it shows is checked, and what a recovery code has to be.
Package twofactor declares what a second factor is: how an authenticator application is enrolled, how the code it shows is checked, and what a recovery code has to be.
Package arandutest holds the helpers a test needs and an application must not use.
Package arandutest holds the helpers a test needs and an application must not use.
Package auth answers who is acting, and proves that somebody decided what they may do.
Package auth answers who is acting, and proves that somebody decided what they may do.
access
Package access is the ability-and-policy vocabulary for authorization: a Gate holding abilities and policies, a Response carrying the sentence behind an answer, and an AuthorizationError for the failure.
Package access is the ability-and-policy vocabulary for authorization: a Gate holding abilities and policies, a Response carrying the sentence behind an answer, and an AuthorizationError for the failure.
access/events
Package events holds the announcement a gate makes when it has decided.
Package events holds the announcement a gate makes when it has decided.
events
Package events holds the announcements authentication makes: an attempt, a sign-in, a sign-out, a failure, a lockout, a registration, a reset and a verification.
Package events holds the announcements authentication makes: an attempt, a sign-in, a sign-out, a failure, a lockout, a registration, a reset and a verification.
listeners
Package listeners holds the listener authentication ships with.
Package listeners holds the listener authentication ships with.
middleware
Package middleware holds the authentication and authorization middleware.
Package middleware holds the authentication and authorization middleware.
users
Package users holds the user providers that read accounts out of a database.
Package users holds the user providers that read accounts out of a database.
Package broadcasting publishes an event to the clients listening on a channel, and authorizes the subscriptions that ask to listen.
Package broadcasting publishes an event to the clients listening on a channel, and authorizes the subscriptions that ask to listen.
broadcasters
Package broadcasters holds the drivers a broadcast is published through.
Package broadcasters holds the drivers a broadcast is published through.
bus
Package bus groups jobs: a batch that knows when all of it is done, and a chain that runs one job after another.
Package bus groups jobs: a batch that knows when all of it is done, and a chain that runs one job after another.
events
Package events names the three things that happen to a batch.
Package events names the three things that happen to a batch.
Package cache is the cache: a Repository over a Store, the stores, the locks, the tags and the rate limiter.
Package cache is the cache: a Repository over a Store, the stores, the locks, the tags and the rate limiter.
cachetest
Package cachetest is the contract suite every cache store passes.
Package cachetest is the contract suite every cache store passes.
console
Package console holds the cache commands.
Package console holds the cache commands.
events
Package events holds every event a cache Repository fires.
Package events holds every event a cache Repository fires.
ratelimiting
Package ratelimiting is reserved, and holds no code.
Package ratelimiting is reserved, and holds no code.
Package collections provides Collection, an ordered list of values carrying a large set of transformations, and LazyCollection, the same vocabulary over a sequence produced one element at a time.
Package collections provides Collection, an ordered list of values carrying a large set of transformations, and LazyCollection, the same vocabulary over a sequence produced one element at a time.
arr
Package arr reads and writes nested maps and slices by "dot" path, and carries the list operations that work on untyped data.
Package arr reads and writes nested maps and slices by "dot" path, and carries the list operations that work on untyped data.
traits
Package traits is empty, and stays empty.
Package traits is empty, and stays empty.
Package concurrency runs a set of tasks at the same time and collects their results.
Package concurrency runs a set of tasks at the same time and collects their results.
console
Package console is the command-line surface of hesape/concurrency.
Package console is the command-line surface of hesape/concurrency.
Package conditionable exports nothing.
Package conditionable exports nothing.
Package config reads and validates the settings an application runs on.
Package config reads and validates the settings an application runs on.
Package console is what an application writes its own commands against.
Package console is what an application writes its own commands against.
attributes
Package attributes holds metadata a command applies to itself.
Package attributes holds metadata a command applies to itself.
contracts
Package contracts holds the small interfaces a console type can implement so another package can act on it without importing the concrete type.
Package contracts holds the small interfaces a console type can implement so another package can act on it without importing the concrete type.
events
Package events holds the events the console and scheduler dispatch.
Package events holds the events the console and scheduler dispatch.
scheduling
Package scheduling is the events an application runs on a clock.
Package scheduling is the events an application runs on a clock.
view
Package view holds only what a command and the components it renders with share: how a task ended.
Package view holds only what a command and the components it renders with share: how a task ended.
view/components
Package components is the set of shapes a command prints in.
Package components is the set of shapes a command prints in.
Package container exports nothing, and exists to say why.
Package container exports nothing, and exists to say why.
Package contracts exports nothing.
Package contracts exports nothing.
Package cookie holds a CookieJar: cookies built with the application's defaults, and a queue that the middleware in cookie/middleware flushes onto the response on its way out.
Package cookie holds a CookieJar: cookies built with the application's defaults, and a queue that the middleware in cookie/middleware flushes onto the response on its way out.
middleware
Package middleware provides two HTTP middlewares for cookies: EncryptCookies, which encrypts and decrypts cookie values, and AddQueuedCookiesToResponse, which flushes a cookie jar's queue onto the response.
Package middleware provides two HTTP middlewares for cookies: EncryptCookies, which encrypts and decrypts cookie values, and AddQueuedCookiesToResponse, which flushes a cookie jar's queue onto the response.
Package database is the data access contract: one connection, one repository shape, and no ORM.
Package database is the data access contract: one connection, one repository shape, and no ORM.
capsule
Package capsule is the database usable from a script with no application around it: three lines of configuration, and a connection.
Package capsule is the database usable from a script with no application around it: three lines of configuration, and a connection.
concerns
Package concerns holds the shared halves of a connection and a query builder: ManagesTransactions, BuildsQueries, BuildsWhereDateClauses, CompilesJsonPaths, ExplainsQueries and ParsesSearchPath.
Package concerns holds the shared halves of a connection and a query builder: ManagesTransactions, BuildsQueries, BuildsWhereDateClauses, CompilesJsonPaths, ExplainsQueries and ParsesSearchPath.
conformance
Package conformance is the suite every connector has to pass against a real server.
Package conformance is the suite every connector has to pass against a real server.
connectors
Package connectors is the parent of the three connector modules.
Package connectors is the parent of the three connector modules.
console
Package console holds the database commands: db, db:monitor, db:show, db:table, db:wipe and model:prune.
Package console holds the database commands: db, db:monitor, db:show, db:table, db:wipe and model:prune.
console/factories
Package factories will hold make:factory, and holds nothing yet.
Package factories will hold make:factory, and holds nothing yet.
console/migrations
Package migrations holds the eight migration commands as console.Command values, with the flags --database, --path, --pretend, --step, --batch, --seed and --force.
Package migrations holds the eight migration commands as console.Command values, with the flags --database, --path, --pretend, --step, --batch, --seed and --force.
console/seeds
Package seeds holds db:seed and make:seeder.
Package seeds holds db:seed and make:seeder.
criteria
Package criteria translates a query string into clauses a declared query accepts, and refuses everything else.
Package criteria translates a query string into clauses a declared query accepts, and refuses everything else.
events
Package events holds the values the database dispatches: connection established, query executed, statement prepared, the four transaction events, the migration events, the schema dump and load events, and model pruning.
Package events holds the values the database dispatches: connection established, query executed, statement prepared, the four transaction events, the migration events, the schema dump and load events, and model pruning.
migrations
Package migrations runs schema changes: the Migration contract, the registry they declare themselves in, the migrator that applies them and the repository table that records what ran.
Package migrations runs schema changes: the Migration contract, the registry they declare themselves in, the migrator that applies them and the repository table that records what ran.
model
Package model holds the Model, its query Builder, its Collection and soft deletes.
Package model holds the Model, its query Builder, its Collection and soft deletes.
model/attributes
Package attributes declares nothing, and will not.
Package attributes declares nothing, and will not.
model/factories
Package factories builds rows of an entity for tests and for seeding.
Package factories builds rows of an entity for tests and for seeding.
model/relations
Package relations holds the sixteen relation types, and the eager loading that keeps them from being N+1 queries.
Package relations holds the sixteen relation types, and the eager loading that keeps them from being N+1 queries.
model/relations/concerns
Package concerns holds the shared halves the sixteen relation types are assembled from: AsPivot, CanBeOneOfMany, ComparesRelatedModels, InteractsWithDictionary, InteractsWithPivotTable, SupportsDefaultModels and SupportsInverseRelations.
Package concerns holds the shared halves the sixteen relation types are assembled from: AsPivot, CanBeOneOfMany, ComparesRelatedModels, InteractsWithDictionary, InteractsWithPivotTable, SupportsDefaultModels and SupportsInverseRelations.
query
Package query builds SQL: the Builder, the raw Expression, the index hint and the join clause.
Package query builds SQL: the Builder, the raw Expression, the index hint and the join clause.
query/grammars
Package grammars holds one grammar per engine, each one compiling a *query.Builder into the SQL that engine speaks: MySQLGrammar, MariaDBGrammar, PostgresGrammar and SQLiteGrammar, over the shared Grammar in grammar.go.
Package grammars holds one grammar per engine, each one compiling a *query.Builder into the SQL that engine speaks: MySQLGrammar, MariaDBGrammar, PostgresGrammar and SQLiteGrammar, over the shared Grammar in grammar.go.
query/processors
Package processors holds the hook a driver takes to adjust results on the way out of the connection: MySQLProcessor, MariaDBProcessor, PostgresProcessor and SQLiteProcessor over the shared Processor.
Package processors holds the hook a driver takes to adjust results on the way out of the connection: MySQLProcessor, MariaDBProcessor, PostgresProcessor and SQLiteProcessor over the shared Processor.
schema
Package schema declares tables and indexes: the Blueprint a migration writes against, the Builder that executes it, and the dump-and-load schema state.
Package schema declares tables and indexes: the Blueprint a migration writes against, the Builder that executes it, and the dump-and-load schema state.
schema/grammars
Package grammars turns a schema.Blueprint into statements, one grammar per engine: MySQLGrammar, PostgresGrammar and SQLiteGrammar over BaseGrammar.
Package grammars turns a schema.Blueprint into statements, one grammar per engine: MySQLGrammar, PostgresGrammar and SQLiteGrammar over BaseGrammar.
Package encryption encrypts, decrypts and signs values with the application key.
Package encryption encrypts, decrypts and signs values with the application key.
Package enum is the contract a closed set of values satisfies, and the operations the layers around it derive from that contract instead of repeating the set.
Package enum is the contract a closed set of values satisfies, and the operations the layers around it derive from that contract instead of repeating the set.
Package events is a dispatcher, its listeners, and an outbox underneath.
Package events is a dispatcher, its listeners, and an outbox underneath.
Package exception is where a failed request stops.
Package exception is where a failed request stops.
Package faker generates plausible values for factories and tests.
Package faker generates plausible values for factories and tests.
Package filesystem is the file contract: what a tenant uploaded, and where it went.
Package filesystem is the file contract: what a tenant uploaded, and where it went.
s3 module
Package foundation boots the application.
Package foundation boots the application.
Package hashing writes and verifies password hashes.
Package hashing writes and verifies password hashes.
Package html builds escaped HTML fragments as values: HtmlBuilder and FormBuilder.
Package html builds escaped HTML fragments as values: HtmlBuilder and FormBuilder.
Package http is the request and response layer a controller action works with: the incoming Request, the Response types a handler can build, and the Context an action is called with.
Package http is the request and response layer a controller action works with: the incoming Request, the Response types a handler can build, and the Context an action is called with.
client
Package client is an HTTP client wrapping net/http.Client, with a testing surface built in: stub callbacks (Fake), response sequences, request recording, and assertions on what was sent.
Package client is an HTTP client wrapping net/http.Client, with a testing surface built in: stub callbacks (Fake), response sequences, request recording, and assertions on what was sent.
client/concerns
Package concerns is intentionally empty.
Package concerns is intentionally empty.
client/events
Package events holds the events dispatched during an HTTP client request lifecycle: RequestSending, ResponseReceived and ConnectionFailed.
Package events holds the events dispatched during an HTTP client request lifecycle: RequestSending, ResponseReceived and ConnectionFailed.
client/promises
Package promises provides the two promise-like types the HTTP client returns from an asynchronous request: FluentPromise and LazyPromise.
Package promises provides the two promise-like types the HTTP client returns from an asynchronous request: FluentPromise and LazyPromise.
concerns
Package concerns is intentionally empty.
Package concerns is intentionally empty.
exceptions
Package exceptions holds the exception types an HTTP response can carry: HttpResponseException, MalformedUrlException, OriginMismatchException, PostTooLargeException and ThrottleRequestsException.
Package exceptions holds the exception types an HTTP response can carry: HttpResponseException, MalformedUrlException, OriginMismatchException, PostTooLargeException and ThrottleRequestsException.
middleware
Package middleware holds the standard middleware every application wires: CORS, security headers, body-size limits, host and proxy trust, cache validation, and the method a form could not send for itself.
Package middleware holds the standard middleware every application wires: CORS, security headers, body-size limits, host and proxy trust, cache validation, and the method a form could not send for itself.
resources
Package resources transforms data into the shapes a JSON response takes: conditional fields, wrapping, pagination metadata and resource collections.
Package resources transforms data into the shapes a JSON response takes: conditional fields, wrapping, pagination metadata and resource collections.
resources/json
Package json holds the concrete builders and response types that compose with the interfaces in the parent package hesape/http/resources.
Package json holds the concrete builders and response types that compose with the interfaces in the parent package hesape/http/resources.
resources/jsonapi
Package jsonapi provides the resource types and helpers for building JSON:API-compliant responses, including sparse fieldsets, included resources, and relationship resolution.
Package jsonapi provides the resource types and helpers for building JSON:API-compliant responses, including sparse fieldsets, included resources, and relationship resolution.
testing
Package testing helps a test build an UploadedFile without a real browser: a fake file of a given size or with given content, a fake image, and the MIME type lookups uploads are validated against.
Package testing helps a test build an UploadedFile without a real browser: a fake file of a given size or with given content, a fake image, and the MIME type lookups uploads are validated against.
Package image describes an image by what should be done to it, done to it once, when somebody asks for the result.
Package image describes an image by what should be done to it, done to it once, when somebody asks for the result.
transformations
Package transformations holds the twelve things that can be asked of an image, as twelve types.
Package transformations holds the twelve things that can be asked of an image, as twelve types.
internal
enums
Package enums holds two enum types exactly as `aru make:enum` writes them, so that what depends on the enum contract is tested against the file a project actually gets rather than against a hand-written stand-in.
Package enums holds two enum types exactly as `aru make:enum` writes them, so that what depends on the enum contract is tested against the file a project actually gets rather than against a hand-written stand-in.
filetype
Package filetype classifies untrusted files from bounded reads of their content.
Package filetype classifies untrusted files from bounded reads of their content.
Package jsonschema builds and checks JSON Schema documents.
Package jsonschema builds and checks JSON Schema documents.
types
Package types is empty on purpose, and holds no types.
Package types is empty on purpose, and holds no types.
log
Package log is the logger, the log channels and the development-time Collector, and it is the reason this framework exists.
Package log is the logger, the log channels and the development-time Collector, and it is the reason this framework exists.
context
Package context is the log context that crosses a whole request: a Repository carried on the context.Context, and the handler that copies it onto every log line.
Package context is the log context that crosses a whole request: a Repository carried on the context.Context, and the handler that copies it onto every log line.
context/events
Package events is the two events the log context fires: ContextDehydrating, when the context is about to be written down for a queued job, and ContextHydrated, once it has been read back.
Package events is the two events the log context fires: ContextDehydrating, when the context is about to be written down for a queued job, and ContextHydrated, once it has been read back.
events
Package events is the event a written log line fires.
Package events is the event a written log line fires.
Package macroable exports nothing.
Package macroable exports nothing.
Package mail sends what an application has to say to somebody.
Package mail sends what an application has to say to somebody.
events
Package events is the two events a github.com/arandu-io/hesape/mail.Mailer fires: one before it sends, one after.
Package events is the two events a github.com/arandu-io/hesape/mail.Mailer fires: one before it sends, one after.
mailables
Package mailables is the value types a mailable declares: the address, the attachment, the content, the envelope and the headers.
Package mailables is the value types a mailable declares: the address, the attachment, the content, the envelope and the headers.
transport
Package transport is the delivery half of mail: the seven ways a rendered message leaves the process.
Package transport is the delivery half of mail: the seven ways a rendered message leaves the process.
Package notifications delivers one short message to one person over the channels that person can be reached on.
Package notifications delivers one short message to one person over the channels that person can be reached on.
channels
Package channels is the three ways a notification can be delivered: Mail sends it as an e-mail, Database stores it as a row, and Broadcast pushes it to a browser that is connected right now.
Package channels is the three ways a notification can be delivered: Mail sends it as an e-mail, Database stores it as a row, and Broadcast pushes it to a browser that is connected right now.
console
Package console is the one command the notifications component ships.
Package console is the one command the notifications component ships.
events
Package events names the three things that can happen to a notification on its way out, and builds the hesape/events value that records each of them.
Package events names the three things that can happen to a notification on its way out, and builds the hesape/events value that records each of them.
messages
Package messages is what a notification looks like on a channel: Mail for an e-mail, Database for a stored row, Broadcast for a live push, and Action for the one button a mail message may carry.
Package messages is what a notification looks like on a channel: Mail for an e-mail, Database for a stored row, Broadcast for a live push, and Action for the one button a mail message may carry.
Package number formats, spells and parses numbers.
Package number formats, spells and parses numbers.
Package oauth signs somebody in with an account they already have.
Package oauth signs somebody in with an account they already have.
providers
Package providers is the OAuth 2 authorization code flow, out to the provider and back, with one type per provider on top of it.
Package providers is the OAuth 2 authorization code flow, out to the provider and back, with one type per provider on top of it.
Package onetime issues, keeps and spends the short code an application mails to somebody.
Package onetime issues, keeps and spends the short code an application mails to somebody.
Package otp computes one-time codes from a shared secret.
Package otp computes one-time codes from a shared secret.
Package pagination turns a page of rows into the values a pager renders from.
Package pagination turns a page of rows into the values a pager renders from.
Package pipeline sends a value through a list of stages, each free to inspect it, change it, hand it on or refuse it.
Package pipeline sends a value through a list of stages, each free to inspect it, change it, hand it on or refuse it.
Package process runs external programs.
Package process runs external programs.
exceptions
Package exceptions holds nothing.
Package exceptions holds nothing.
Package publish writes a module's files into a project and can be run again without eating what the project did to them.
Package publish writes a module's files into a project and can be run again without eating what the project did to them.
Package qr encodes text into a QR symbol and renders it as inline SVG.
Package qr encodes text into a QR symbol and renders it as inline SVG.
Package queue is work that happens after the response: the Queue contract, the drivers that ship with the collection, and the Worker that drains them.
Package queue is work that happens after the response: the Queue contract, the drivers that ship with the collection, and the Worker that drains them.
attributes
Package attributes is the per-job settings a job carries: how many tries, how long to wait between them, how long the handler may run.
Package attributes is the per-job settings a job carries: how many tries, how long to wait between them, how long the handler may run.
capsule
Package capsule is empty, and nothing is coming.
Package capsule is empty, and nothing is coming.
connectors
Package connectors opens queue connections.
Package connectors opens queue connections.
console
Package console is the queue's commands.
Package console is the queue's commands.
console/concerns
Package concerns is what more than one queue command needs.
Package concerns is what more than one queue command needs.
events
Package events is everything the queue announces about itself.
Package events is everything the queue announces about itself.
failed
Package failed is where a job goes when it gives up.
Package failed is where a job goes when it gives up.
jobs
Package jobs is the job itself: what Push takes, and what the worker holds while the work runs.
Package jobs is the job itself: what Push takes, and what the worker holds while the work runs.
middleware
Package middleware wraps the handling of a job.
Package middleware wraps the handling of a job.
redis module
Package reflection exports nothing.
Package reflection exports nothing.
Package remote exports nothing, and will not.
Package remote exports nothing, and will not.
Package routing decides which handler answers a request, and what the address of a handler is called.
Package routing decides which handler answers a request, and what the address of a handler is called.
console
Package console is empty, and stays that way: console commands live in the project's own binary, through the switch in bootstrap/console.go, rather than being registered here.
Package console is empty, and stays that way: console commands live in the project's own binary, through the switch in bootstrap/console.go, rather than being registered here.
contracts
Package contracts is empty, and stays that way: an interface lives in the package that consumes it, not in one of its own.
Package contracts is empty, and stays that way: an interface lives in the package that consumes it, not in one of its own.
controllers
Package controllers holds the contract a controller uses to declare its own middleware: HasMiddleware, and the MiddlewareDef pairs it returns.
Package controllers holds the contract a controller uses to declare its own middleware: HasMiddleware, and the MiddlewareDef pairs it returns.
exceptions
Package exceptions holds the error types a route, a signed URL or a streamed response can fail with: an invalid signature, a missing rate limiter, a route URL that is missing required parameters, a backed-enum parameter that matched no case, and a streamed response that failed after the headers were already sent.
Package exceptions holds the error types a route, a signed URL or a streamed response can fail with: an invalid signature, a missing rate limiter, a route URL that is missing required parameters, a backed-enum parameter that matched no case, and a streamed response that failed after the headers were already sent.
matching
Package matching holds the four checks that decide whether a route answers a request: its host, its method, its scheme and its path.
Package matching holds the four checks that decide whether a route answers a request: its host, its method, its scheme and its path.
middleware
Package middleware holds the two middlewares that decide whether a request reaches a route at all.
Package middleware holds the two middlewares that decide whether a request reaches a route at all.
rpc module
Package scheduler declares nothing.
Package scheduler declares nothing.
Package session issues sessions, carries the flash across the redirect that follows a rejected form, and mints the CSRF token bound to the session.
Package session issues sessions, carries the flash across the redirect that follows a rejected form, and mints the CSRF token bound to the session.
console
Package console provides the code generator for the session table.
Package console provides the code generator for the session table.
middleware
Package middleware provides two session middlewares.
Package middleware provides two session middlewares.
Package str transforms strings.
Package str transforms strings.
Package support holds the small, dependency-free building blocks the rest of the framework is written on: time, environment, value holders, URLs and a handful of generic helpers.
Package support holds the small, dependency-free building blocks the rest of the framework is written on: time, environment, value holders, URLs and a handful of generic helpers.
deferpkg
Package deferpkg holds work put off until after the response has been sent.
Package deferpkg holds work put off until after the response has been sent.
exceptions
Package exceptions holds the error types the support packages share.
Package exceptions holds the error types the support packages share.
facades
Package facades declares nothing, and never will.
Package facades declares nothing, and never will.
testing
Package testing groups the test doubles this module ships.
Package testing groups the test doubles this module ships.
testing/fakes
Package fakes holds the test doubles a test installs so that nothing leaves the process, and so that every message, job, event and notification can be asserted on afterwards.
Package fakes holds the test doubles a test installs so that nothing leaves the process, and so that every message, job, event and notification can be asserted on afterwards.
traits
Package traits declares nothing, and is kept only so the import path resolves.
Package traits declares nothing, and is kept only so the import path resolves.
Package testing is the assertion vocabulary a test writes against.
Package testing is the assertion vocabulary a test writes against.
concerns
Package concerns is empty, and it stays empty.
Package concerns is empty, and it stays empty.
constraints
Package constraints holds the reusable matchers the assertions evaluate.
Package constraints holds the reusable matchers the assertions evaluate.
exceptions
Package exceptions holds the errors an assertion returns when it was called wrongly.
Package exceptions holds the errors an assertion returns when it was called wrongly.
fluent
Package fluent asserts about a JSON payload one property at a time.
Package fluent asserts about a JSON payload one property at a time.
fluent/concerns
Package concerns is empty, and it stays empty.
Package concerns is empty, and it stays empty.
Package toon encodes JSON-shaped Go values as Token-Oriented Object Notation (TOON) 4.1, pinned to the specification repository's v4.1.1 release.
Package toon encodes JSON-shaped Go values as Token-Oriented Object Notation (TOON) 4.1, pinned to the specification repository's v4.1.1 release.
Package translation resolves a key into a sentence in a locale.
Package translation resolves a key into a sentence in a locale.
Package validation checks a submitted request against a set of rules.
Package validation checks a submitted request against a set of rules.
Package view is the view layer: compiled markup, HTMX for interaction, one embedded script for ephemeral client state, Tailwind for style.
Package view is the view layer: compiled markup, HTMX for interaction, one embedded script for ephemeral client state, Tailwind for style.
concerns
Package concerns is intentionally empty, and stays that way.
Package concerns is intentionally empty, and stays that way.
engines
Package engines resolves a view path to the engine that renders it, and the compiled-view bookkeeping each engine needs.
Package engines resolves a view path to the engine that renders it, and the compiled-view bookkeeping each engine needs.
middleware
Package middleware holds the view-layer HTTP middleware.
Package middleware holds the view-layer HTTP middleware.
Package workbench generates a Go module that an Arandu application can import.
Package workbench generates a Go module that an Arandu application can import.

Jump to

Keyboard shortcuts

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