vorma

package module
v0.83.0 Latest Latest
Warning

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

Go to latest
Published: Jan 6, 2026 License: BSD-3-Clause Imports: 6 Imported by: 0

README

Vorma Framework

Vorma banner

The Next.js of Golang, powered by Vite.

vorma.dev | github.com | pkg.go.dev | npmjs.com | x.com

Quick Start

npm create vorma@latest

What is Vorma?

Vorma is a lot like Next.js, Remix, or TanStack Start, but it uses Go on the backend, with your choice of React, Solid, or Preact on the frontend.

It has nested routing, effortless end-to-end type safety (including Link components!), parallel-executed route loaders, and much, much more.

It's deeply integrated with Vite to give you full hot module reloading at dev-time.

Get Started

If you want to dive right in, just open a terminal and run npm create vorma@latest and follow the prompts.

If you'd prefer to read more first, take a peek at our docs.

Status

Vorma's underlying tech has reached a good degree of stability, but its APIs are still evolving. Sub-1.0 releases may contain breaking changes. If you ever need help upgrading to the latest version, feel free to file an issue on GitHub or reach out on X.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// Wave convenience re-exports
	MustGetPort  = wave.MustGetPort
	GetIsDev     = wave.GetIsDev
	SetModeToDev = wave.SetModeToDev

	IsJSONRequest          = rf.IsJSONRequest
	VormaBuildIDHeaderKey  = rf.VormaBuildIDHeaderKey
	EnableThirdPartyRouter = mux.InjectTasksCtxMiddleware
)

Functions

func Internal__GetCurrentNPMVersion

func Internal__GetCurrentNPMVersion() string

This utility exists primarily in service of the vorma.dev website. There is no guarantee that this utility will always be available or kept up to date.

Types

type Action

type Action[I any, O any] = rf.TaskHandler[I, O]

func NewAction

func NewAction[I any, O any, CtxPtr ~*Ctx, Ctx any](
	app *Vorma,
	m string,
	p string,
	f func(CtxPtr) (O, error),
	decorateCtx func(*mux.ReqData[I]) CtxPtr,
) *Action[I, O]

type ActionFunc

type ActionFunc[Ctx any, I any, O any] = func(*Ctx) (O, error)

type ActionReqData

type ActionReqData[I any] = rf.ActionReqData[I]

type ActionsRouter

type ActionsRouter = rf.ActionsRouter

type ActionsRouterOptions

type ActionsRouterOptions = rf.ActionsRouterOptions

type AdHocType

type AdHocType = rf.AdHocType

type BuildOptions

type BuildOptions = rf.BuildOptions

type FormData

type FormData = rf.FormData

Set this as your input type when you want to work with standard HTTP forms (whether "application/x-www-form-urlencoded" or "multipart/form-data"). This is just an empty struct with a marker method to ensure the API client knows to accept FormData as the input type. To get the actual form values, use the underlying *http.Request (by calling `Request()` on your action ctx).

type HeadEls

type HeadEls = headels.HeadEls

type Loader

type Loader[O any] = rf.TaskHandler[None, O]

func NewLoader

func NewLoader[O any, CtxPtr ~*Ctx, Ctx any](
	app *Vorma,
	p string,
	f func(CtxPtr) (O, error),
	decorateCtx func(*LoaderReqData) CtxPtr,
) *Loader[O]

type LoaderFunc

type LoaderFunc[Ctx any, O any] = func(*Ctx) (O, error)

type LoaderReqData

type LoaderReqData = rf.LoaderReqData

type LoadersRouter

type LoadersRouter = rf.LoadersRouter

type LoadersRouterOptions

type LoadersRouterOptions = rf.LoadersRouterOptions

type None

type None = mux.None

type Vorma

type Vorma = rf.Vorma

func NewVormaApp

func NewVormaApp(o VormaAppConfig) *Vorma

type VormaAppConfig

type VormaAppConfig = rf.VormaAppConfig

Directories

Path Synopsis
This package is not meant to be called directly by users.
This package is not meant to be called directly by users.
internal
scripts/buildts command
scripts/bumper command
scripts/sum command
kit
bytesutil
Package bytesutil provides utility functions for byte slice operations.
Package bytesutil provides utility functions for byte slice operations.
cryptoutil
Package cryptoutil provides utility functions for cryptographic operations.
Package cryptoutil provides utility functions for cryptographic operations.
csrf
Package csrf provides a robust, stateless, and layered CSRF protection middleware for Go.
Package csrf provides a robust, stateless, and layered CSRF protection middleware for Go.
email
Deprecated: Please use the more correct mailutil package instead.
Deprecated: Please use the more correct mailutil package instead.
fsutil
Package fsutil provides utility functions for working with the filesystem.
Package fsutil provides utility functions for working with the filesystem.
genericsutil
Package genericsutil provides helpers for implementing type erasure patterns
Package genericsutil provides helpers for implementing type erasure patterns
id
jsonschema
NOTE:
NOTE:
lab/fsmarkdown
buyer beware
buyer beware
lab/repoconcat
buyer beware
buyer beware
lab/xyz
buyer beware
buyer beware
lazycache
Useful for creating methods that lazily initialize a derived value and run only once no matter how many times the method is called.
Useful for creating methods that lazily initialize a derived value and run only once no matter how many times the method is called.
lazyget
Package lazyget provides a simple way to create thread-safe, type-safe getter functions to lazily initialize, cache, and return a value of a given type.
Package lazyget provides a simple way to create thread-safe, type-safe getter functions to lazily initialize, cache, and return a value of a given type.
lru
Package lru implements a generic Least Recently Used (LRU) cache with support for "spam" items and TTL (Time-To-Live).
Package lru implements a generic Least Recently Used (LRU) cache with support for "spam" items and TTL (Time-To-Live).
middleware/csrftoken
Deprecated: Please upgrade to the newer, more robust, and stateless csrf package available at github.com/vormadev/vorma/kit/csrf.
Deprecated: Please upgrade to the newer, more robust, and stateless csrf package available at github.com/vormadev/vorma/kit/csrf.
mux
opt
parseutil
NOTE:
NOTE:
rpc
safecache
Package safecache provides a generic, thread-safe, lazily initiated cache that ensures initialization occurs only once unless bypass is requested.
Package safecache provides a generic, thread-safe, lazily initiated cache that ensures initialization occurs only once unless bypass is requested.
securebytes
This package assumes that the caller's use case is not sensitive to timing attacks.
This package assumes that the caller's use case is not sensitive to timing attacks.
securestring
This package assumes that the caller's use case is not sensitive to timing attacks.
This package assumes that the caller's use case is not sensitive to timing attacks.
set
signedcookie
Package signedcookie provides a secure cookie manager for Go web applications.
Package signedcookie provides a secure cookie manager for Go web applications.
tasks
A "Task", as used in this package, is simply a function that takes in input, returns data (or an error), and runs a maximum of one time per execution context / input value pairing, even if invoked repeatedly during the lifetime of the execution context.
A "Task", as used in this package, is simply a function that takes in input, returns data (or an error), and runs a maximum of one time per execution context / input value pairing, even if invoked repeatedly during the lifetime of the execution context.
timer
Package timer provides a simple timer for measuring the duration of code execution.
Package timer provides a simple timer for measuring the duration of code execution.
validate
Package validate provides a simple way to validate and parse data from HTTP requests.
Package validate provides a simple way to validate and parse data from HTTP requests.

Jump to

Keyboard shortcuts

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