omni

command module
v1.5.0 Latest Latest
Warning

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

Go to latest
Published: Feb 10, 2026 License: MIT Imports: 1 Imported by: 0

README

omni

Test

A cross-platform, Go-native replacement for common shell utilities, designed for Taskfile, CI/CD, and enterprise environments.

Features

  • No exec - Never spawns external processes
  • Pure Go - Standard library first, minimal dependencies
  • Cross-platform - Linux, macOS, Windows
  • Library + CLI - Use as commands or import as Go packages
  • Safe defaults - Destructive operations require explicit flags
  • Unix compatible - GNU-style flags for find (-name), head/tail (-20)

Installation

go install github.com/inovacc/omni@latest

Or build from source:

git clone https://github.com/inovacc/omni.git
cd omni
task build

Quick Start

# File operations
omni ls -la
omni cat file.txt
omni cp -r src/ dst/
omni rm -rf temp/

# Text processing
omni grep -i "pattern" file.txt
omni sed 's/old/new/g' file.txt
omni awk '{print $1}' data.txt
omni jq '.name' data.json
omni yq '.items[]' config.yaml

# System info
omni ps -a
omni df -h
omni free -h
omni uptime

# Utilities
omni sha256sum file.bin
omni base64 -d encoded.txt
omni uuid -n 5
omni random -t password -l 20

# Encryption
echo "secret" | omni encrypt -p mypass -a
omni decrypt -p mypass -a secret.enc

Command Categories

Core Commands
Command Description
ls List directory contents
pwd Print working directory
cat Concatenate and print files
date Print current date/time
dirname Strip last path component
basename Strip directory from path
realpath Print resolved absolute path
path clean Return shortest equivalent path with OS separators
path abs Resolve relative path to absolute
File Operations
Command Description
cp Copy files and directories
mv Move/rename files
rm Remove files/directories
mkdir Create directories
rmdir Remove empty directories
touch Update file timestamps
stat Display file status
ln Create links
readlink Print symlink target
chmod Change file permissions
chown Change file ownership
Text Processing
Command Description
grep Search for patterns
egrep Extended regex grep
fgrep Fixed string grep
head Output first lines
tail Output last lines
sort Sort lines
uniq Filter duplicate lines
wc Word/line/byte count
cut Extract fields
tr Translate characters
nl Number lines
paste Merge lines
tac Reverse line order
column Columnate lists
fold Wrap lines
join Join files on field
sed Stream editor
awk Pattern scanning
shuf Shuffle lines
split Split file into pieces
rev Reverse lines
comm Compare sorted files
cmp Compare bytes
strings Print printable strings
Command Description
rg Ripgrep-style search (gitignore, parallel, JSON/NDJSON)
find Find files by name/type/size (GNU-compatible flags)
System Information
Command Description
env Print environment
whoami Print current user
id Print user/group IDs
uname Print system info
uptime Show system uptime
free Display memory info
df Show disk usage
du Estimate file space
ps List processes
kill Send signals
time Time a command
Flow Control
Command Description
xargs Build arguments
watch Execute repeatedly
yes Output repeatedly
pipe Chain omni commands with variable substitution
pipeline Streaming text processing engine (constant memory)
Archive & Compression
Command Description
tar Create/extract tar archives
zip Create zip archives
unzip Extract zip archives
gzip/gunzip/zcat Gzip compression
bzip2/bunzip2/bzcat Bzip2 compression
xz/unxz/xzcat XZ compression
Hash & Encoding
Command Description
hash Compute file hashes (md5, sha1, sha256, sha512, crc32, crc64)
sha256sum SHA256 checksum
sha512sum SHA512 checksum
md5sum MD5 checksum
crc32sum CRC32 checksum (IEEE polynomial)
crc64sum CRC64 checksum (ECMA polynomial)
base64 Base64 encode/decode
base32 Base32 encode/decode
base58 Base58 encode/decode
Data Processing
Command Description
jq JSON processor
yq YAML processor
dotenv Parse .env files
json JSON conversions (tostruct, tocsv, fromcsv, toxml, fromxml)
csv CSV processing
xml XML validate/tojson/fromjson
toml TOML validate
yaml YAML tostruct/validate
Data Formatting
Command Description
sql fmt/minify/validate SQL formatting
css fmt/minify/validate CSS formatting
html fmt/minify/validate HTML formatting
Case Conversion
Command Description
case snake Convert to snake_case
case camel Convert to camelCase
case kebab Convert to kebab-case
case pascal Convert to PascalCase
Security & Random
Command Description
encrypt AES-256-GCM encryption
decrypt AES-256-GCM decryption
uuid Generate UUIDs
random Generate random values
Video Download
Command Description
video download Download video from URL
video info Show video metadata as JSON
video list-formats List available formats
video search Search YouTube
video extractors List supported sites
TUI Pagers
Command Description
less View file with scrolling
more View file page by page
Comparison
Command Description
diff Compare files line by line
Cloud & DevOps
Command Description
kubectl / k Full kubectl integration (local source)
terraform / tf Terraform CLI wrapper
aws AWS CLI (EC2, S3, IAM, STS, SSM)
Git Hacks
Command Alias Description
git quick-commit gqc Stage all + commit
git branch-clean gbc Delete merged branches
git undo - Soft reset HEAD~1
git log-graph git lg Pretty log with graph
git status git st Short status
Kubectl Hacks
Command Description
kga Get all resources
klf Follow pod logs
keb Exec into pod
kpf Port forward
kge Events sorted by time
kcs/kns Switch context/namespace
Database Tools
Command Description
sqlite SQLite database management (pure Go)
bbolt BoltDB key-value store management
Code Generation
Command Description
generate cobra Generate Cobra CLI applications
Project Analyzer
Command Description
project info Full project overview (type, deps, git, docs)
project deps Dependency analysis
project docs Documentation status check
project git Git repository info
project health Health score (0-100) with grade
Tooling
Command Description
lint Check Taskfiles for portability
logger Configure command logging

Database Tools

SQLite CLI

Pure Go SQLite management (no CGO required):

# Database info
omni sqlite stats mydb.sqlite
omni sqlite tables mydb.sqlite
omni sqlite schema mydb.sqlite users
omni sqlite columns mydb.sqlite users
omni sqlite indexes mydb.sqlite

# Query execution
omni sqlite query mydb.sqlite "SELECT * FROM users"
omni sqlite query mydb.sqlite "SELECT * FROM users" --json
omni sqlite query mydb.sqlite "SELECT * FROM users" --header

# Maintenance
omni sqlite vacuum mydb.sqlite
omni sqlite check mydb.sqlite
omni sqlite dump mydb.sqlite > backup.sql
omni sqlite import mydb.sqlite backup.sql
BBolt CLI

BoltDB key-value store management:

# Database info
omni bbolt stats mydb.bolt
omni bbolt buckets mydb.bolt
omni bbolt keys mydb.bolt mybucket

# Key-value operations
omni bbolt get mydb.bolt mybucket mykey
omni bbolt put mydb.bolt mybucket mykey "value"
omni bbolt delete mydb.bolt mybucket mykey

# Maintenance
omni bbolt compact mydb.bolt compacted.bolt
omni bbolt check mydb.bolt
omni bbolt dump mydb.bolt

Code Generation

Cobra CLI Generator

Generate production-ready Cobra CLI applications:

# Basic project
omni generate cobra init myapp --module github.com/user/myapp

# With Viper configuration
omni generate cobra init myapp --module github.com/user/myapp --viper

# Full project with CI/CD (goreleaser, workflows, linting)
omni generate cobra init myapp --module github.com/user/myapp --full

# With service pattern (inovacc/config)
omni generate cobra init myapp --module github.com/user/myapp --service

# Add new command to existing project
omni generate cobra add serve
omni generate cobra add config --parent root

Configuration file (~/.cobra.yaml):

author: Your Name <email@example.com>
license: MIT
useViper: true
full: true

Manage config:

omni generate cobra config --show
omni generate cobra config --init --author "John Doe" --license MIT

Video Download

Download videos from YouTube and other platforms, pure Go (no FFmpeg required):

# Download video (best quality)
omni video download "https://www.youtube.com/watch?v=dQw4w9WgXcQ"

# Download worst quality (smallest file)
omni video download -f worst "https://www.youtube.com/watch?v=dQw4w9WgXcQ"

# Custom output filename
omni video download -o "%(title)s.%(ext)s" "https://www.youtube.com/watch?v=..."

# Show video metadata as JSON
omni video info "https://www.youtube.com/watch?v=dQw4w9WgXcQ"

# List available formats
omni video list-formats "https://www.youtube.com/watch?v=dQw4w9WgXcQ"

# Search YouTube
omni video search "golang tutorial"

# Resume a partial download
omni video download -c "https://www.youtube.com/watch?v=..."

# Rate-limited download
omni video download --rate-limit 1M "https://www.youtube.com/watch?v=..."

Supported sites: YouTube (videos, playlists, search), Generic (direct URLs, <video> tags, og:video)

Protocols: HTTPS direct download, HLS/M3U8 (with AES-128 decryption)

Format selectors: best, worst, bestvideo, bestaudio, format ID, best[height<=720]

Project Analyzer

Analyze any codebase directory for project type, languages, dependencies, git info, and health:

# Full project overview
omni project info

# Analyze a different project
omni project info /path/to/project

# JSON or Markdown output
omni project info --json
omni project health --markdown

# Individual checks
omni project deps                # Dependency analysis
omni project docs                # Documentation status
omni project git -n 5            # Git info (5 recent commits)
omni project health              # Health score (0-100, A-F grade)

Supported ecosystems: Go, Node.js, Python, Rust, Java, Ruby, PHP, .NET, C/C++, Elixir, Haskell

Health checks: README, LICENSE, .gitignore, CI/CD, tests, linter config, git clean, CONTRIBUTING, docs/, CHANGELOG, .editorconfig, build automation

Library Usage

Core logic is available as importable Go packages under pkg/:

import (
    "github.com/inovacc/omni/pkg/idgen"
    "github.com/inovacc/omni/pkg/hashutil"
    "github.com/inovacc/omni/pkg/jsonutil"
    "github.com/inovacc/omni/pkg/encoding"
    "github.com/inovacc/omni/pkg/cryptutil"
    "github.com/inovacc/omni/pkg/sqlfmt"
    "github.com/inovacc/omni/pkg/textutil"
    "github.com/inovacc/omni/pkg/search/grep"
)

// Generate UUID v7
id, _ := idgen.GenerateUUID(idgen.WithUUIDVersion(idgen.V7))

// Hash a file
hash, _ := hashutil.HashFile("file.bin", hashutil.SHA256)

// Query JSON
result, _ := jsonutil.QueryString(`{"name":"omni"}`, ".name")

// Base64 encode
encoded := encoding.Base64Encode([]byte("hello world"))

// AES-256-GCM encryption
ciphertext, _ := cryptutil.Encrypt([]byte("secret"), "password", cryptutil.WithBase64())

// Format SQL
formatted := sqlfmt.Format("select * from users where id=1")

// Sort lines
lines := []string{"banana", "apple", "cherry"}
textutil.SortLines(lines, textutil.WithReverse())

// Search with grep
matches := grep.Search(lines, "app")

// Download video
import "github.com/inovacc/omni/pkg/video"
client, _ := video.New(video.WithFormat("best"))
_ = client.Download(ctx, "https://www.youtube.com/watch?v=...")
Available Packages
Package Import Description
pkg/idgen idgen UUID v4/v7, ULID, KSUID, Nanoid, Snowflake
pkg/hashutil hashutil MD5, SHA1, SHA256, SHA512, CRC32, CRC64 file/string/reader hashing
pkg/jsonutil jsonutil JSON query engine (jq-style filters)
pkg/encoding encoding Base64, Base32, Base58 encode/decode
pkg/cryptutil cryptutil AES-256-GCM encrypt/decrypt with PBKDF2
pkg/sqlfmt sqlfmt SQL format, minify, validate, tokenize
pkg/cssfmt cssfmt CSS format, minify, validate, parse
pkg/htmlfmt htmlfmt HTML format, minify, validate
pkg/textutil textutil Sort, Uniq, Trim text processing
pkg/textutil/diff diff Compute diffs, compare JSON, unified format
pkg/search/grep grep Pattern search with regex/fixed/word options
pkg/search/rg rg Gitignore parsing, file type matching, binary detection
pkg/pipeline pipeline Streaming text processing engine (grep, sort, head, etc.)
pkg/twig twig Directory tree scanning, formatting, comparison
pkg/figlet figlet FIGlet font parser and ASCII art text renderer
pkg/video video Video download engine (YouTube, HLS, generic)

Project Structure

omni/
├── cmd/                    # Cobra CLI commands (150+ commands)
│   ├── root.go
│   ├── ls.go
│   ├── grep.go
│   └── ...
├── pkg/                    # Reusable Go libraries (importable by external projects)
│   ├── idgen/              # UUID, ULID, KSUID, Nanoid, Snowflake
│   ├── hashutil/           # File/string/reader hashing
│   ├── jsonutil/           # JSON query engine
│   ├── encoding/           # Base64, Base32, Base58
│   ├── cryptutil/          # AES-256-GCM encryption
│   ├── sqlfmt/             # SQL formatting and validation
│   ├── cssfmt/             # CSS formatting and validation
│   ├── htmlfmt/            # HTML formatting and validation
│   ├── textutil/           # Sort, Uniq, Trim
│   │   └── diff/           # Diff computation and JSON comparison
│   ├── search/
│   │   ├── grep/           # Pattern search
│   │   └── rg/             # Gitignore parsing, file type matching
│   ├── pipeline/           # Streaming text processing engine
│   ├── figlet/             # FIGlet font parser and ASCII art
│   ├── twig/               # Tree scanning, formatting, comparison
│   │   ├── scanner/
│   │   ├── formatter/
│   │   ├── comparer/
│   │   └── ...
│   └── video/              # Video download engine
│       ├── extractor/      # Site-specific extractors (YouTube, Generic)
│       ├── downloader/     # HTTP and HLS download engines
│       ├── format/         # Format sorting and selection
│       ├── m3u8/           # HLS manifest parser
│       ├── nethttp/        # HTTP client with cookies/proxy
│       ├── jsinterp/       # JS execution (YouTube signatures)
│       ├── cache/          # Filesystem cache
│       ├── utils/          # HTML, URL, sanitize helpers
│       └── types/          # Shared data structures
├── internal/
│   ├── cli/               # CLI wrappers (I/O, flags, stdin handling)
│   │   ├── ls/
│   │   ├── grep/
│   │   ├── jq/
│   │   └── ...
│   ├── flags/             # Feature flags system
│   └── logger/            # KSUID-based logging
├── include/               # Template reference files
├── docs/                  # Documentation
└── main.go
Test Coverage
  • Overall Coverage: 30.5% (includes vendored buf packages) | Omni-owned: 51.6%
  • Omni pkg/ Average: ~75% (16 of 31 packages above 80%)
  • Total Test Cases: 700+
  • Black-box Tests: 15 Python test suites
  • Golden Master Tests: 81 snapshot tests across 11 categories

Platform Support

Command Linux macOS Windows
Most commands
chmod ⚠️ Limited
chown
ps
df
free
uptime

Command Logging

Enable command logging for debugging:

# Enable logging (Linux/macOS)
eval "$(omni logger --path /tmp/omni-logs)"

# Enable logging (Windows PowerShell)
Invoke-Expression (omni logger --path C:\temp\omni-logs)

# Check status
omni logger --status

# View all logs
omni logger --viewer

# Disable logging
eval "$(omni logger --disable)"

Log output is structured JSON with command, args, timestamp, and PID.

Query Logging

With logging enabled, SQLite queries are automatically logged:

# Queries logged with timing and row counts
omni sqlite query mydb.sqlite "SELECT * FROM users"

# Include result data in logs (use with caution)
omni sqlite query mydb.sqlite "SELECT * FROM users" --log-data

Log entry example:

{
  "msg": "query_result",
  "database": "mydb.sqlite",
  "query": "SELECT * FROM users",
  "status": "success",
  "rows": 10,
  "duration_ms": 25,
  "timestamp": "2026-01-29T12:00:00Z"
}

Use with Taskfile

omni is designed to work with Taskfile:

version: '3'

tasks:
  build:
    cmds:
      - omni mkdir -p dist
      - go build -o dist/app .
      - omni sha256sum dist/app > dist/checksums.txt

  clean:
    cmds:
      - omni rm -rf dist

  deploy:
    cmds:
      - omni tar -czvf release.tar.gz dist/

Testing

Run tests with race detection:

go test -race -cover ./...

Or use Taskfile:

task test               # Unit tests with coverage
task test:blackbox      # Black-box tests (14 Python suites)
task test:golden        # Golden master tests (81 snapshot tests)
task test:golden:update # Regenerate snapshots after intentional changes
task lint               # Linting

# Docker-based testing
task docker:test:linux:blackbox  # Black-box in Linux container
task docker:test:golden          # Golden tests in Linux container
task docker:test:video           # Video comparison (omni vs yt-dlp)

Contributing

Contributions are welcome! See the documentation in docs/:

License

MIT License - see LICENSE for details.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
cli/aws
Package aws provides AWS CLI functionality for omni.
Package aws provides AWS CLI functionality for omni.
cli/aws/ec2
Package ec2 provides AWS EC2 operations
Package ec2 provides AWS EC2 operations
cli/aws/iam
Package iam provides AWS IAM operations
Package iam provides AWS IAM operations
cli/aws/s3
Package s3 provides AWS S3 operations
Package s3 provides AWS S3 operations
cli/aws/ssm
Package ssm provides AWS SSM Parameter Store operations
Package ssm provides AWS SSM Parameter Store operations
cli/aws/sts
Package sts provides AWS STS operations
Package sts provides AWS STS operations
cli/brdoc
Package brdoc provides Brazilian document validation and generation.
Package brdoc provides Brazilian document validation and generation.
cli/caseconv
Package caseconv provides text case conversion utilities.
Package caseconv provides text case conversion utilities.
cli/cloud/config
Package config handles global cloud configuration.
Package config handles global cloud configuration.
cli/cloud/crypto
Package crypto provides AES-256-GCM encryption for cloud profile credentials.
Package crypto provides AES-256-GCM encryption for cloud profile credentials.
cli/cloud/profile
Package profile provides cloud profile management for AWS, Azure, and GCP.
Package profile provides cloud profile management for AWS, Azure, and GCP.
cli/generate/templates/cobra
Package cobra provides unified Cobra CLI application templates.
Package cobra provides unified Cobra CLI application templates.
cli/git/hacks
Package hacks provides Git shortcut commands for common operations.
Package hacks provides Git shortcut commands for common operations.
cli/kubectl
Package kubectl provides Kubernetes CLI functionality for omni.
Package kubectl provides Kubernetes CLI functionality for omni.
cli/kubehacks
Package kubehacks provides Kubernetes shortcut commands for common operations.
Package kubehacks provides Kubernetes shortcut commands for common operations.
cli/output
Package output provides unified output formatting for CLI commands.
Package output provides unified output formatting for CLI commands.
cli/project
Package project provides a general-purpose project analyzer command.
Package project provides a general-purpose project analyzer command.
cli/tagfixer
Package tagfixer provides Go struct tag standardization and fixing.
Package tagfixer provides Go struct tag standardization and fixing.
cli/task
Package task implements a task runner for omni-only commands.
Package task implements a task runner for omni-only commands.
cli/terraform
Package terraform provides Terraform CLI wrapper for omni.
Package terraform provides Terraform CLI wrapper for omni.
cli/vault
Package vault provides HashiCorp Vault CLI functionality for omni.
Package vault provides HashiCorp Vault CLI functionality for omni.
cli/xxd
Package xxd provides hex dump functionality similar to the xxd command.
Package xxd provides hex dump functionality similar to the xxd command.
pkg
Package pkg contains reusable Go libraries for omni, importable by external projects.
Package pkg contains reusable Go libraries for omni, importable by external projects.
buf/internal/app
Package app provides application primitives.
Package app provides application primitives.
buf/internal/app/appcmd
Package appcmd contains helper functionality for applications using commands.
Package appcmd contains helper functionality for applications using commands.
buf/internal/app/appcmd/appcmdtesting
Package appcmdtesting contains test utilities for appcmd.
Package appcmdtesting contains test utilities for appcmd.
buf/internal/app/appext
Package appext contains extra functionality to work with config files and flags.
Package appext contains extra functionality to work with config files and flags.
buf/internal/buf/bufgen
Package bufgen does configuration-based generation.
Package bufgen does configuration-based generation.
buf/internal/buf/buflsp
Package buflsp implements a language server for Protobuf.
Package buflsp implements a language server for Protobuf.
buf/internal/buf/bufprotoc
Package bufprotoc builds ModuleSets for protoc include paths and file paths.
Package bufprotoc builds ModuleSets for protoc include paths and file paths.
buf/internal/buf/bufprotopluginexec
Package bufprotopluginexec provides protoc plugin handling and execution.
Package bufprotopluginexec provides protoc plugin handling and execution.
buf/internal/bufpkg/bufconnect
Package bufconnect provides buf-specific Connect functionality.
Package bufconnect provides buf-specific Connect functionality.
buf/internal/bufpkg/bufprotoplugin
Package bufprotoplugin contains helper functionality for protoc plugins.
Package bufprotoplugin contains helper functionality for protoc plugins.
buf/internal/bufpkg/bufprotoplugin/bufprotopluginos
Package bufprotopluginos does OS-specific generation.
Package bufprotopluginos does OS-specific generation.
buf/internal/bufpkg/bufprotosource
Package bufprotosource defines minimal interfaces for Protobuf descriptor types.
Package bufprotosource defines minimal interfaces for Protobuf descriptor types.
buf/internal/bufpkg/bufremoteplugin/bufremotepluginconfig
Package bufremotepluginconfig defines the buf.plugin.yaml file.
Package bufremotepluginconfig defines the buf.plugin.yaml file.
buf/internal/bufpkg/bufremoteplugin/bufremoteplugindocker
Package bufremoteplugindocker contains utilities for building Buf plugins using the Docker API.
Package bufremoteplugindocker contains utilities for building Buf plugins using the Docker API.
buf/internal/gen/data/datawkt
Package datawkt stores the sources of the Well-Known Types, and provides helper functionality around them.
Package datawkt stores the sources of the Well-Known Types, and provides helper functionality around them.
buf/internal/interrupt
Package interrupt implements handling for interrupt signals.
Package interrupt implements handling for interrupt signals.
buf/internal/pkg/diff
Package diff implements diffing.
Package diff implements diffing.
buf/internal/pkg/encoding
Package encoding provides encoding utilities.
Package encoding provides encoding utilities.
buf/internal/pkg/github/githubtesting
Package githubtesting provides testing functionality for GitHub.
Package githubtesting provides testing functionality for GitHub.
buf/internal/pkg/indent
Package indent handles printing with indentation, mostly for debug purposes.
Package indent handles printing with indentation, mostly for debug purposes.
buf/internal/pkg/licenseheader
Package licenseheader handles license headers.
Package licenseheader handles license headers.
buf/internal/pkg/netrc
Package netrc contains functionality to work with netrc.
Package netrc contains functionality to work with netrc.
buf/internal/pkg/normalpath
Package normalpath provides functions similar to filepath.
Package normalpath provides functions similar to filepath.
buf/internal/pkg/oauth2
Package oauth2 contains functionality to work with OAuth2.
Package oauth2 contains functionality to work with OAuth2.
buf/internal/pkg/osext
Package osext provides os utilities.
Package osext provides os utilities.
buf/internal/pkg/protogenutil
Package protogenutil provides support for protoc plugin development with the protoplugin and protogen packages.
Package protogenutil provides support for protoc plugin development with the protoplugin and protogen packages.
buf/internal/pkg/refcount
Package refcount provides utilities for working with reference-counted objects.
Package refcount provides utilities for working with reference-counted objects.
buf/internal/pkg/shake256
Package shake256 provides simple utilities around shake256 digests.
Package shake256 provides simple utilities around shake256 digests.
buf/internal/pkg/slogapp
Package slogapp builds slog.Loggers.
Package slogapp builds slog.Loggers.
buf/internal/pkg/slogtestext
Package slogtestext provides Loggers for testing.
Package slogtestext provides Loggers for testing.
buf/internal/pkg/storage
Package storage implements a simple storage abstraction.
Package storage implements a simple storage abstraction.
buf/internal/pkg/storage/storagearchive
Package storagearchive implements archive utilities.
Package storagearchive implements archive utilities.
buf/internal/pkg/storage/storagemem
Package storagemem implements an in-memory storage Bucket.
Package storagemem implements an in-memory storage Bucket.
buf/internal/pkg/storage/storagemem/internal
Package internal splits out ImmutableObject into a separate package from storagemem to make it impossible to modify ImmutableObject via direct field access.
Package internal splits out ImmutableObject into a separate package from storagemem to make it impossible to modify ImmutableObject via direct field access.
buf/internal/pkg/storage/storageos
Package storageos implements an os-backed storage Bucket.
Package storageos implements an os-backed storage Bucket.
buf/internal/pkg/storage/storagetesting
Package storagetesting implements testing utilities and integration tests for storage.
Package storagetesting implements testing utilities and integration tests for storage.
buf/internal/pkg/storage/storageutil
Package storageutil provides helpers for storage implementations.
Package storageutil provides helpers for storage implementations.
buf/internal/pkg/syserror
Package syserror handles "system errors".
Package syserror handles "system errors".
buf/internal/pkg/tmp
Package tmp provides temporary files and directories.
Package tmp provides temporary files and directories.
buf/internal/pkg/wasm
Package wasm provides a Wasm runtime for plugins.
Package wasm provides a Wasm runtime for plugins.
buf/internal/protocompile
Package protocompile provides the entry point for a high performance native Go protobuf compiler.
Package protocompile provides the entry point for a high performance native Go protobuf compiler.
buf/internal/protocompile/ast
Package ast defines types for modeling the AST (Abstract Syntax Tree) for the Protocol Buffers interface definition language.
Package ast defines types for modeling the AST (Abstract Syntax Tree) for the Protocol Buffers interface definition language.
buf/internal/protocompile/experimental/ast
Package ast is a high-performance implementation of a Protobuf IDL abstract syntax tree.
Package ast is a high-performance implementation of a Protobuf IDL abstract syntax tree.
buf/internal/protocompile/experimental/ast/predeclared
Package predeclared provides all of the identifiers with a special meaning in Protobuf.
Package predeclared provides all of the identifiers with a special meaning in Protobuf.
buf/internal/protocompile/experimental/ast/syntax
Package syntax specifies all of the syntax pragmas (including editions) that Protocompile understands.
Package syntax specifies all of the syntax pragmas (including editions) that Protocompile understands.
buf/internal/protocompile/experimental/dom
Package dom is a Go port of https://github.com/mcy/strings/tree/main/allman, a high-performance meta-formatting library.
Package dom is a Go port of https://github.com/mcy/strings/tree/main/allman, a high-performance meta-formatting library.
buf/internal/protocompile/experimental/expr
Package expr provides an abstract syntax tree implementation for an expression language shared by various parts of the compiler.
Package expr provides an abstract syntax tree implementation for an expression language shared by various parts of the compiler.
buf/internal/protocompile/experimental/id
Package id provides helpers for working with node-oriented data structures (such as ASTs and graphs) using compressed pointers (IDs).
Package id provides helpers for working with node-oriented data structures (such as ASTs and graphs) using compressed pointers (IDs).
buf/internal/protocompile/experimental/incremental
Package incremental implements a query-oriented incremental compilation framework.
Package incremental implements a query-oriented incremental compilation framework.
buf/internal/protocompile/experimental/incremental/queries
Package queries provides specific incremental.Query types for various parts of Protocompile.
Package queries provides specific incremental.Query types for various parts of Protocompile.
buf/internal/protocompile/experimental/internal/cycle
Package cycle contains internal helpers for dealing with dependency cycles.
Package cycle contains internal helpers for dealing with dependency cycles.
buf/internal/protocompile/experimental/internal/erredition
Package erredition defines common diagnostics for issuing errors about the wrong edition being used.
Package erredition defines common diagnostics for issuing errors about the wrong edition being used.
buf/internal/protocompile/experimental/internal/errtoken
Package errtoken contains standard diagnostics involving tokens, usually emitted by the lexer.
Package errtoken contains standard diagnostics involving tokens, usually emitted by the lexer.
buf/internal/protocompile/experimental/internal/just
package just adds a "justification" helper for diagnostics.
package just adds a "justification" helper for diagnostics.
buf/internal/protocompile/experimental/internal/taxa
Package taxa (plural of taxon, an element of a taxonomy) provides support for classifying Protobuf syntax productions for use in the parser and in diagnostics.
Package taxa (plural of taxon, an element of a taxonomy) provides support for classifying Protobuf syntax productions for use in the parser and in diagnostics.
buf/internal/protocompile/experimental/internal/tokenmeta
Package meta defines internal metadata types shared between the token package and the lexer.
Package meta defines internal metadata types shared between the token package and the lexer.
buf/internal/protocompile/experimental/ir
Package ir defines the intermediate representation used by Protocompile.
Package ir defines the intermediate representation used by Protocompile.
buf/internal/protocompile/experimental/ir/presence
Package presence provides Kind, which denotes the way in which a field can be present in a Protobuf message.
Package presence provides Kind, which denotes the way in which a field can be present in a Protobuf message.
buf/internal/protocompile/experimental/report
Package report provides a robust diagnostics framework.
Package report provides a robust diagnostics framework.
buf/internal/protocompile/experimental/report/tags
Package tags defines publicly-exposed diagnostic tag constants for use with [report.Tag].
Package tags defines publicly-exposed diagnostic tag constants for use with [report.Tag].
buf/internal/protocompile/experimental/seq
Package seq provides an interface for sequence-like types that can be indexed and inserted into.
Package seq provides an interface for sequence-like types that can be indexed and inserted into.
buf/internal/protocompile/experimental/source
Package source provides a standard interfaces for working with source files and spans within them.
Package source provides a standard interfaces for working with source files and spans within them.
buf/internal/protocompile/experimental/source/length
Package length provides various length that can be used for configuring the behavior of line/column calculations.
Package length provides various length that can be used for configuring the behavior of line/column calculations.
buf/internal/protocompile/experimental/token
Package token provides a memory-efficient representation of a token tree stream for the Protobuf IDL.
Package token provides a memory-efficient representation of a token tree stream for the Protobuf IDL.
buf/internal/protocompile/experimental/token/keyword
Package keyword provides Keyword, an enum of all special "grammar particles" (i.e., literal tokens with special meaning in the grammar such as identifier keywords and punctuation) recognized by Protocompile.
Package keyword provides Keyword, an enum of all special "grammar particles" (i.e., literal tokens with special meaning in the grammar such as identifier keywords and punctuation) recognized by Protocompile.
buf/internal/protocompile/internal/arena
Package arena defines an Arena type with compressed pointers.
Package arena defines an Arena type with compressed pointers.
buf/internal/protocompile/internal/cases
Package cases provides functions for inter-converting between different case styles.
Package cases provides functions for inter-converting between different case styles.
buf/internal/protocompile/internal/editions
Package editions contains helpers related to resolving features for Protobuf editions.
Package editions contains helpers related to resolving features for Protobuf editions.
buf/internal/protocompile/internal/enum command
enum is a helper for generating boilerplate related to Go enums.
enum is a helper for generating boilerplate related to Go enums.
buf/internal/protocompile/internal/ext/bitsx
Package bitsx contains extensions to Go's package math/bits.
Package bitsx contains extensions to Go's package math/bits.
buf/internal/protocompile/internal/ext/cmpx
package cmpx contains extensions to Go's package cmp.
package cmpx contains extensions to Go's package cmp.
buf/internal/protocompile/internal/ext/iterx
Package iterx contains extensions to Go's package iter.
Package iterx contains extensions to Go's package iter.
buf/internal/protocompile/internal/ext/mapsx
package mapsx contains extensions to Go's package maps.
package mapsx contains extensions to Go's package maps.
buf/internal/protocompile/internal/ext/osx
Package osx contains extensions to the os package.
Package osx contains extensions to the os package.
buf/internal/protocompile/internal/ext/slicesx
Package slicesx contains extensions to Go's package slices.
Package slicesx contains extensions to Go's package slices.
buf/internal/protocompile/internal/ext/stringsx
Package stringsx contains extensions to Go's package strings.
Package stringsx contains extensions to Go's package strings.
buf/internal/protocompile/internal/ext/unsafex
Package unsafex contains extensions to Go's package unsafe.
Package unsafex contains extensions to Go's package unsafe.
buf/internal/protocompile/internal/featuresext
Package featuresext provides file descriptors for the "google/protobuf/cpp_features.proto" and "google/protobuf/java_features.proto" standard import files.
Package featuresext provides file descriptors for the "google/protobuf/cpp_features.proto" and "google/protobuf/java_features.proto" standard import files.
buf/internal/protocompile/internal/golden
Package golden provides a framework for writing file-based golden tests.
Package golden provides a framework for writing file-based golden tests.
buf/internal/protocompile/internal/intern
Package intern provides an interning table abstraction to optimize symbol resolution.
Package intern provides an interning table abstraction to optimize symbol resolution.
buf/internal/protocompile/internal/testing/dualcompiler
Package dualcompiler provides a test abstraction layer for running tests with both the old protocompile.Compiler and the new experimental compiler.
Package dualcompiler provides a test abstraction layer for running tests with both the old protocompile.Compiler and the new experimental compiler.
buf/internal/protocompile/internal/toposort
Package toposort provides a generic topological sort implementation.
Package toposort provides a generic topological sort implementation.
buf/internal/protocompile/linker
Package linker contains logic and APIs related to linking a protobuf file.
Package linker contains logic and APIs related to linking a protobuf file.
buf/internal/protocompile/options
Package options contains the logic for interpreting options.
Package options contains the logic for interpreting options.
buf/internal/protocompile/parser
Package parser contains the logic for parsing protobuf source code into an AST (abstract syntax tree) and also for converting an AST into a descriptor proto.
Package parser contains the logic for parsing protobuf source code into an AST (abstract syntax tree) and also for converting an AST into a descriptor proto.
buf/internal/protocompile/protoutil
Package protoutil contains useful functions for interacting with descriptors.
Package protoutil contains useful functions for interacting with descriptors.
buf/internal/protocompile/reporter
Package reporter contains the types used for reporting errors from protocompile operations.
Package reporter contains the types used for reporting errors from protocompile operations.
buf/internal/protocompile/sourceinfo
Package sourceinfo contains the logic for computing source code info for a file descriptor.
Package sourceinfo contains the logic for computing source code info for a file descriptor.
buf/internal/protocompile/walk
Package walk provides helper functions for traversing all elements in a protobuf file descriptor.
Package walk provides helper functions for traversing all elements in a protobuf file descriptor.
buf/internal/protocompile/wellknownimports
Package wellknownimports provides source code for the well-known import files for use with a protocompile.Compiler.
Package wellknownimports provides source code for the well-known import files for use with a protocompile.Compiler.
buf/internal/protoplugin
Package protoplugin is a simple library to assist in writing protoc plugins.
Package protoplugin is a simple library to assist in writing protoc plugins.
buf/internal/protoplugin/internal/examples/protoc-gen-protogen-simple command
Package main implements a very simple plugin that scaffolds using the protogen package with the protoplugin package.
Package main implements a very simple plugin that scaffolds using the protogen package with the protoplugin package.
buf/internal/protoplugin/internal/examples/protoc-gen-protoreflect-simple command
Package main implements a very simple plugin that just outputs text files with the names of the top-level messages in each file, but uses the protoreflect package instead of directly using the FileDescriptorProtos.
Package main implements a very simple plugin that just outputs text files with the names of the top-level messages in each file, but uses the protoreflect package instead of directly using the FileDescriptorProtos.
buf/internal/protoplugin/internal/examples/protoc-gen-simple command
Package main implements a very simple plugin that just outputs text files with the names of the top-level messages in each file.
Package main implements a very simple plugin that just outputs text files with the names of the top-level messages in each file.
buf/internal/standard/xio
Package xio provides extended functionality for io.
Package xio provides extended functionality for io.
buf/internal/standard/xlog/xslog
Package xslog provides extended functionality for slog.
Package xslog provides extended functionality for slog.
buf/internal/standard/xos/xexec
Package xexec provides extended functionality for exec.
Package xexec provides extended functionality for exec.
buf/internal/standard/xpath/xfilepath
Package xfilepath provides extended functionality for filepath.
Package xfilepath provides extended functionality for filepath.
buf/internal/standard/xslices
Package xslices provides extended functionality for slices.
Package xslices provides extended functionality for slices.
buf/internal/standard/xstrings
Package xstrings provides extended functionality for strings.
Package xstrings provides extended functionality for strings.
buf/internal/standard/xsync
Package xsync provides extended functionality for sync.
Package xsync provides extended functionality for sync.
buf/internal/standard/xtesting
Package xtesting provides extended functionality for testing.
Package xtesting provides extended functionality for testing.
cryptutil
Package cryptutil provides AES-256-GCM symmetric encryption and decryption with PBKDF2 key derivation.
Package cryptutil provides AES-256-GCM symmetric encryption and decryption with PBKDF2 key derivation.
cssfmt
Package cssfmt provides CSS formatting, minification, and validation.
Package cssfmt provides CSS formatting, minification, and validation.
encoding
Package encoding provides Base64, Base32, and Base58 encoding and decoding functions, plus a WrapString helper for line wrapping encoded output at a specified column width.
Package encoding provides Base64, Base32, and Base58 encoding and decoding functions, plus a WrapString helper for line wrapping encoded output at a specified column width.
figlet
Package figlet provides a FIGlet font parser and ASCII art text renderer.
Package figlet provides a FIGlet font parser and ASCII art text renderer.
hashutil
Package hashutil provides hash computation for files, strings, byte slices, and io.Reader streams.
Package hashutil provides hash computation for files, strings, byte slices, and io.Reader streams.
htmlfmt
Package htmlfmt provides HTML formatting, minification, and validation.
Package htmlfmt provides HTML formatting, minification, and validation.
idgen
Package idgen provides unique identifier generation including UUID v4/v7, ULID, KSUID, Nanoid, and Snowflake IDs.
Package idgen provides unique identifier generation including UUID v4/v7, ULID, KSUID, Nanoid, and Snowflake IDs.
jsonutil
Package jsonutil provides a jq-style JSON query engine.
Package jsonutil provides a jq-style JSON query engine.
pipeline
Package pipeline provides a streaming text processing engine with built-in transform stages connected via io.Pipe goroutines.
Package pipeline provides a streaming text processing engine with built-in transform stages connected via io.Pipe goroutines.
search
Package search provides text search engines including grep-style pattern matching and ripgrep-compatible file searching.
Package search provides text search engines including grep-style pattern matching and ripgrep-compatible file searching.
search/grep
Package grep provides pattern-based search over string slices.
Package grep provides pattern-based search over string slices.
search/rg
Package rg provides gitignore pattern parsing and matching, file type extension filtering, glob matching, and binary file detection.
Package rg provides gitignore pattern parsing and matching, file type extension filtering, glob matching, and binary file detection.
sqlfmt
Package sqlfmt provides SQL formatting, minification, validation, and tokenization.
Package sqlfmt provides SQL formatting, minification, validation, and tokenization.
textutil
Package textutil provides text processing functions including sorting, deduplication, and trimming of string slices.
Package textutil provides text processing functions including sorting, deduplication, and trimming of string slices.
textutil/diff
Package diff provides line-based diff computation using the LCS algorithm, unified format output, and JSON structure comparison.
Package diff provides line-based diff computation using the LCS algorithm, unified format output, and JSON structure comparison.
twig
Package twig provides directory tree scanning, formatting, and comparison with support for parallel scanning, streaming output, and JSON snapshot comparison for detecting added, removed, modified, and moved files.
Package twig provides directory tree scanning, formatting, and comparison with support for parallel scanning, streaming output, and JSON snapshot comparison for detecting added, removed, modified, and moved files.
twig/builder
Package builder constructs tree node hierarchies from flat scan results, assembling parent-child relationships for display formatting.
Package builder constructs tree node hierarchies from flat scan results, assembling parent-child relationships for display formatting.
twig/comparer
Package comparer provides JSON tree snapshot comparison using a 5-phase algorithm to detect added, removed, modified, and moved files between two directory snapshots.
Package comparer provides JSON tree snapshot comparison using a 5-phase algorithm to detect added, removed, modified, and moved files between two directory snapshots.
twig/expander
Package expander provides tree node expansion for unfolding collapsed directory structures into their full hierarchical representation.
Package expander provides tree node expansion for unfolding collapsed directory structures into their full hierarchical representation.
twig/formatter
Package formatter provides tree output formatting including ASCII tree, JSON, flattened hash, and NDJSON streaming modes.
Package formatter provides tree output formatting including ASCII tree, JSON, flattened hash, and NDJSON streaming modes.
twig/models
Package models defines shared data structures for tree nodes, scan results, and formatting options used across the twig sub-packages.
Package models defines shared data structures for tree nodes, scan results, and formatting options used across the twig sub-packages.
twig/parser
Package parser reads JSON tree snapshots and reconstructs the in-memory tree representation for comparison and display operations.
Package parser reads JSON tree snapshots and reconstructs the in-memory tree representation for comparison and display operations.
twig/scanner
Package scanner provides parallel directory scanning with configurable limits for maximum files, hash size thresholds, and worker count.
Package scanner provides parallel directory scanning with configurable limits for maximum files, hash size thresholds, and worker count.
video
Package video provides a pure Go video download engine supporting YouTube and other video platforms.
Package video provides a pure Go video download engine supporting YouTube and other video platforms.
video/cache
Package cache provides a filesystem-based cache using XDG directory conventions for storing and retrieving JSON-serialized data across video download sessions.
Package cache provides a filesystem-based cache using XDG directory conventions for storing and retrieving JSON-serialized data across video download sessions.
video/downloader
Package downloader provides video download engines for HTTP/HTTPS and HLS (M3U8) protocols with resume, retry, rate limiting, and progress tracking support.
Package downloader provides video download engines for HTTP/HTTPS and HLS (M3U8) protocols with resume, retry, rate limiting, and progress tracking support.
video/extractor
Package extractor defines the Extractor interface and provides a global registry for site-specific video metadata extractors.
Package extractor defines the Extractor interface and provides a global registry for site-specific video metadata extractors.
video/extractor/all
Package all imports all extractor packages to register them.
Package all imports all extractor packages to register them.
video/format
Package format provides video format sorting by quality and a selector that parses format specification strings like "best", "worst", "bestvideo", and filter expressions like "best[height<=720]".
Package format provides video format sorting by quality and a selector that parses format specification strings like "best", "worst", "bestvideo", and filter expressions like "best[height<=720]".
video/jsinterp
Package jsinterp provides a JavaScript execution environment using the goja runtime for decrypting YouTube video signatures and throttling parameters (nsig).
Package jsinterp provides a JavaScript execution environment using the goja runtime for decrypting YouTube video signatures and throttling parameters (nsig).
video/m3u8
Package m3u8 provides an HLS manifest parser that handles both master and media playlists, including segment durations, encryption keys (EXT-X-KEY), and variant stream selection.
Package m3u8 provides an HLS manifest parser that handles both master and media playlists, including segment durations, encryption keys (EXT-X-KEY), and variant stream selection.
video/nethttp
Package nethttp provides an HTTP client wrapper with cookie jar support, proxy configuration, custom headers, user-agent, and automatic retries for the video download engine.
Package nethttp provides an HTTP client wrapper with cookie jar support, proxy configuration, custom headers, user-agent, and automatic retries for the video download engine.
video/types
Package types defines shared data structures for the video download engine including VideoInfo, Format, Fragment, Thumbnail, Subtitle, Chapter, and error types.
Package types defines shared data structures for the video download engine including VideoInfo, Format, Fragment, Thumbnail, Subtitle, Chapter, and error types.
video/utils
Package utils provides shared utility functions for the video download engine including filename sanitization, HTML metadata extraction, URL manipulation, duration/filesize parsing, and nested JSON traversal.
Package utils provides shared utility functions for the video download engine including filename sanitization, HTML metadata extraction, URL manipulation, duration/filesize parsing, and nested JSON traversal.

Jump to

Keyboard shortcuts

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