local

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Sep 6, 2026 License: MIT Imports: 10 Imported by: 0

Documentation

Overview

Package local implementa a execucao de processos no host.

Existe por causa da emenda de 2026-08-31 a secao 3 do plano: o texto original exigia Kubernetes para qualquer linguagem que nao fosse Go, o que inviabilizava desenvolver na propria instancia.

A fronteira e codigo, nao convencao: New recusa-se a construir o executor fora do modo local. Um `run:` sem limite declarado e o risco real — nao o comando.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ErrForaDoLocal

type ErrForaDoLocal struct{ Env string }

ErrForaDoLocal e devolvido quando se tenta construir o executor fora do modo local. Tipado para poder ser afirmado em teste.

func (ErrForaDoLocal) Error

func (e ErrForaDoLocal) Error() string

type GoExecutor

type GoExecutor struct {
	// contains filtered or unexported fields
}

GoExecutor roda tasks Go registradas, dentro do proprio processo.

E o executor da secao 14: sem container, sem pod, sem processo filho. O ganho e justamente esse — uma task Go simples nao paga startup de container, que foi a medida que motivou este projeto (cold start de 38s contra 5s no benchmark que originou o Brevis).

Diferente do ProcessExecutor, NAO ha restricao de ambiente: o codigo aqui foi compilado junto com o binario, entao nao ha superficie de execucao arbitraria.

func NewGoExecutor

func NewGoExecutor(reg *execution.Registry) *GoExecutor

func (*GoExecutor) Cancel

func (g *GoExecutor) Cancel(_ context.Context, execID string) error

func (*GoExecutor) Execute

func (g *GoExecutor) Execute(ctx context.Context, t execution.TaskExec) (<-chan execution.Event, error)

Execute resolve a task no registry e a roda numa goroutine, transmitindo os eventos.

func (*GoExecutor) Name

func (g *GoExecutor) Name() string

type ProcessExecutor

type ProcessExecutor struct {
	// contains filtered or unexported fields
}

ProcessExecutor roda comandos arbitrarios como processos do host.

func New

func New(env string) (*ProcessExecutor, error)

New devolve o executor, ou recusa se o ambiente nao for local.

func (*ProcessExecutor) Cancel

func (p *ProcessExecutor) Cancel(_ context.Context, execID string) error

Cancel interrompe uma execucao em voo.

func (*ProcessExecutor) Execute

func (p *ProcessExecutor) Execute(ctx context.Context, t execution.TaskExec) (<-chan execution.Event, error)

Execute dispara o comando e devolve o canal de eventos. O canal fecha quando o processo termina — quem consome pode usar `range` sem coordenacao extra.

func (*ProcessExecutor) Name

func (p *ProcessExecutor) Name() string

Jump to

Keyboard shortcuts

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