orbital

package module
v0.1.29 Latest Latest
Warning

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

Go to latest
Published: Mar 31, 2026 License: Apache-2.0 Imports: 30 Imported by: 0

README

Orbital Package System (ops)

We package and deliver like UPS trucks.

What

Every package system in existence is too hard to use and too painful to deal with. We want to fix that. If you just want to ship a filesystem wrapped in a cryptographically verifiable archive you are in the right place.

Why

  • NIX is too complex, build systems should not be tightly coupled to package systems
  • Everything else was designed for 1970 and it shows

Notable features

  • Crypto

    • Signed archives
    • Signed metadata
    • Public key fetching from DNS
  • Embeddable

    • Use it with no Pkl dependency to create a software updater for your Go app
  • Opkg

    • Fast random access signed archive format
    • Zstd compression
    • Variable build system friendly DSL (Opkgfile)
    • Version time component because why increment a semver for CI builds
  • Repositories

    • Publish to S3
    • Fetch from HTTPS/S3

License

Apache 2.0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Init

func Init(mode config.Mode, root string) error

Types

type Cache

type Cache struct {
	*slog.Logger
	// contains filtered or unexported fields
}

func (*Cache) Clean

func (c *Cache) Clean() error

func (*Cache) Clear

func (c *Cache) Clear() error

type Opkg

type Opkg struct {
	*slog.Logger
	// contains filtered or unexported fields
}

func (*Opkg) Build

func (o *Opkg) Build(manifestPath string, pltfrm *platform.Platform, targetPath string, workPath string, outputPath string, restrict bool, secure bool) (*ops.Manifest, string, error)

func (*Opkg) Extract

func (o *Opkg) Extract(opkgPath, targetPath string) error

func (*Opkg) Manifest

func (o *Opkg) Manifest(opkgPath string) (*ops.Manifest, error)

func (*Opkg) Validate

func (o *Opkg) Validate(opkgPath string) error

type Orbital

type Orbital struct {
	*slog.Logger

	Cache       *Cache
	Opkg        *Opkg
	Pki         *Pki
	Publish     *Publish
	Repo        *Repo
	Transaction *Transaction
	Tree        *Tree
	// contains filtered or unexported fields
}

func Dynamic

func Dynamic(logger *slog.Logger, cfgPath string) (*Orbital, error)

func Embedded

func Embedded(logger *slog.Logger, treePath string, treeConfig *tree.Config) (*Orbital, error)

func New

func New(logger *slog.Logger, cfg *config.Config, tr tree.Tree) (*Orbital, error)

func (*Orbital) Contents

func (o *Orbital) Contents(pkg string) (action.Actions, error)

func (*Orbital) Freeze

func (o *Orbital) Freeze(packages ...string) error

func (*Orbital) Info

func (o *Orbital) Info(pkg string) (*ops.Header, error)

func (*Orbital) Install

func (o *Orbital) Install(packages ...string) error

TODO add support for local pkg files

func (*Orbital) List

func (o *Orbital) List() (packages []*records.Package, err error)

func (*Orbital) Plan

func (o *Orbital) Plan(action string, packages ...string) ([]*solve.Operation, error)

func (*Orbital) Privileged added in v0.1.18

func (o *Orbital) Privileged() bool

func (*Orbital) Ready

func (o *Orbital) Ready() bool

func (*Orbital) Refresh

func (o *Orbital) Refresh() error

func (*Orbital) Remove

func (o *Orbital) Remove(packages ...string) error

func (*Orbital) Status

func (o *Orbital) Status(pkg string) (*records.Status, error)

func (*Orbital) Thaw

func (o *Orbital) Thaw(packages ...string) error

func (*Orbital) Update

func (o *Orbital) Update(packages ...string) error

type Pki

type Pki struct {
	*slog.Logger
	// contains filtered or unexported fields
}

func (*Pki) KeyPairImport

func (p *Pki) KeyPairImport(mode string, cert, key string) error

func (*Pki) KeyPairList

func (p *Pki) KeyPairList() ([]*pki.KeyPairEntry, error)

func (*Pki) KeyPairRemove

func (p *Pki) KeyPairRemove(ski string) error

func (*Pki) TrustImportDNS

func (p *Pki) TrustImportDNS(ski, publisher string) error

func (*Pki) TrustImportFiles

func (p *Pki) TrustImportFiles(cert ...string) error

func (*Pki) TrustList

func (p *Pki) TrustList() ([]*pki.CertEntry, error)

func (*Pki) TrustRefresh

func (p *Pki) TrustRefresh() error

func (*Pki) TrustRemove

func (p *Pki) TrustRemove(ski string) error

type Publish

type Publish struct {
	*slog.Logger
	// contains filtered or unexported fields
}

func (*Publish) Channel

func (p *Publish) Channel(repo string, channels []string, id *ops.Id) error

func (*Publish) Fetch

func (p *Publish) Fetch(names []string, pltfrm *platform.Platform) error

func (*Publish) Publish

func (p *Publish) Publish(repo string, workPath string, opkgFiles []string, channels []string) (published, pruned []string, err error)

func (*Publish) Yank

func (p *Publish) Yank(repo string, pkg string, workPath string) error

type Repo

type Repo struct {
	*slog.Logger
	// contains filtered or unexported fields
}

func (*Repo) Contents

func (r *Repo) Contents(repoName string, all bool) (*ops.Repository, error)

func (*Repo) Init

func (r *Repo) Init(repo, workPath string) (uri *url.URL, err error)

func (*Repo) List

func (r *Repo) List() []ops.Repository

type Transaction

type Transaction struct {
	*slog.Logger
	// contains filtered or unexported fields
}

func (*Transaction) List

func (t *Transaction) List() (map[string][]*state.TransactionEntry, error)

type Tree

type Tree struct {
	*slog.Logger
	// contains filtered or unexported fields
}

func (*Tree) Current

func (t *Tree) Current() *tree.Entry

func (*Tree) Destroy

func (t *Tree) Destroy(name string) (*tree.Entry, error)

func (*Tree) Get

func (t *Tree) Get(name string) (*tree.Entry, error)

func (*Tree) Init

func (t *Tree) Init(name string, pltfrm *platform.Platform, force bool) (*tree.Entry, error)

func (*Tree) List

func (t *Tree) List() ([]*tree.Entry, error)

func (*Tree) Pool

func (t *Tree) Pool(platforms []*platform.Platform, empty bool) (*ops.Pool, error)

func (*Tree) Switch

func (t *Tree) Switch(name string) error

Jump to

Keyboard shortcuts

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