Skip to content

essentialkaos/ek

PkgGoDev GoReportCard Code Climate Maintainability Codebeat badge
GitHub Actions CI Status GitHub Actions CodeQL Status

Platform supportInstallationSub-packagesProjects with EKCI StatusContributingLicense


Auxiliary packages for Go.

Platform support

Currently we support Linux and macOS (except some packages). All packages have stubs for unsupported platforms (for autocomplete).

Note

Some packages cannot be used on some platforms, such as the fsutil package, which cannot be used on Windows because it uses syscalls, or system subpackages that require procfs. But you can still write code on these platforms, because almost all packages have stubs with information about all the constants, variables, and functions available on other platforms. For example, Sublime with LSP on Windows will show all the information about methods that are only available on the Linux platform. All stub descriptions contain the ❗ symbol at the beginning to indicate unsupported code. Code with stubs can be compiled, but any method call from stubs will cause panic.

Installation

Make sure you have a working Go 1.20+ workspace (instructions), then:

go get github.com/essentialkaos/ek/v12

If you want to update ek to latest stable release, do:

go get -u github.com/essentialkaos/ek/v12

Tip

If you are using SublimeText 4 (4075+), we strongly recommend that you install extended Go syntax highlighting with support for fmtc tags.

Sub-packages

  • ansi — Package provides methods for working with ANSI/VT100 control sequences
  • cache — Package provides a simple in-memory key:value cache
  • color — Package provides methods for working with colors
  • cron — Package provides methods for working with cron expressions
  • csv — Package with simple (without any checks) CSV parser compatible with default Go parser
  • easing — Package with easing functions (Back, Bounce, Circ, Cubic, Elastic, Expo, Linear, Quad, Quint, Sine)
  • emoji — Package provides methods for working with emojis
  • env — Package provides methods for working with environment variables
  • errutil — Package provides methods for working with errors
  • events — Package provides methods and structs for creating event-driven systems
  • directio — Package provides methods for reading/writing files with direct io
  • fmtc — Package provides methods similar to fmt for colored output
  • fmtutil — Package provides methods for output formatting
  • fmtutil/barcode — Package provides methods to generate colored representation of unique data
  • fmtutil/panel — Package contains methods for rendering panels with text
  • fmtutil/table — Package contains methods and structs for rendering data in tabular format
  • fsutil — Package provides methods for working with files on POSIX compatible systems (BSD/Linux/macOS)
  • hash — Package hash contains different hash algorithms and utilities
  • httputil — Package provides methods for working with HTTP request/responses
  • initsystem — Package provides methods for working with different init systems (sysv, upstart, systemd)
  • jsonutil — Package provides methods for working with JSON data
  • knf — Package provides methods for working with configuration files in KNF format
  • knf/united — Package provides united configuration (knf + options + environment variables)
  • log — Package with an improved logger
  • lock — Package provides methods for working with lock files
  • lscolors — Package provides methods for colorizing file names based on colors from dircolors
  • mathutil — Package provides some additional math methods
  • netutil — Package provides methods for working with network
  • options — Package provides methods for working with command-line options
  • pager — Package provides methods for pager setup (more/less)
  • passthru — Package provides Reader and Writer with information about the amount of data being passed
  • passwd — Package contains methods for working with passwords
  • path — Package for working with paths (fully compatible with base path package)
  • pid — Package for working with PID files
  • pluralize — Package provides methods for pluralization
  • progress — Package provides methods and structs for creating terminal progress bar
  • protip — Package for displaying usage tips
  • rand — Package for generating random data
  • req — Package simplify working with an HTTP requests
  • secstr — Package provides methods and structs for working with protected (secure) strings
  • signal — Package provides methods for handling POSIX signals
  • sliceutil — Package provides methods for working with slices
  • sortutil — Package provides methods for sorting slices
  • spellcheck — Package provides spellcheck based on Damerau–Levenshtein distance algorithm
  • spinner — Package provides methods for creating spinner animation for long-running tasks
  • strutil — Package provides methods for working with strings
  • support — Package provides methods for collecting and printing support information about system
  • system/container — Package provides methods for checking container engine info
  • system/exec — Package provides methods for executing commands
  • system/process — Package provides methods for gathering information about active processes
  • system/procname — Package provides methods for changing process name in the process tree
  • system/sensors — Package provide methods for collecting sensors information
  • system — Package provides methods for working with system data (metrics/users)
  • terminal — Package provides methods for working with user input
  • terminal/tty — Package provides methods for working with TTY
  • timeutil — Package provides methods for working with time and date
  • tmp — Package provides methods for working with temporary data
  • usage — Package usage provides methods and structs for generating usage info for command-line tools
  • usage/update — Package contains update checkers for different services
  • usage/completion/bash — Package provides methods for generating bash completion
  • usage/completion/fish — Package provides methods for generating fish completion
  • usage/completion/zsh — Package provides methods for generating zsh completion
  • uuid — Package provides methods for generating version 4 and 5 UUID's
  • version — Package version provides methods for working with semver version info

Projects with EK

  • aligo — Utility for checking and viewing Golang struct alignment info
  • artefactor — Utility for downloading artefacts from GitHub
  • Bastion — Utility for temporary disabling access to server
  • bibop — Utility for testing command-line tools
  • bop — Utility for generating bibop tests for RPM packages
  • Deadline — Simple utility for controlling application working time
  • fz — Simple tool for formatting go-fuzz output
  • GoHeft — Utility for listing sizes of all used static libraries compiled into golang binary
  • GoMakeGen — Utility for generating makefiles for golang applications
  • icecli — Command-line tools for Icecast
  • IMC — Simple terminal dashboard for Icecast
  • init-exporter — Utility for exporting services described by Procfile to init system
  • jira-reindex-runner — Application for periodical running Jira re-index process
  • knf — Simple utility for reading values from KNF files
  • MDToc — Utility for generating table of contents for markdown files
  • path — Dead simple tool for working with paths
  • perfecto — Tool for checking perfectly written RPM specs
  • RBInstall — Utility for installing prebuilt ruby to RBEnv
  • Redis CLI Monitor — Tiny redis client for renamed MONITOR commands
  • Redis Latency Monitor — Tiny Redis client for latency measurement
  • Redis Monitor Top — Tiny Redis client for aggregating stats from MONITOR flow
  • rep — YUM repository management utility
  • rsz — Simple utility for image resizing
  • scratch — Simple utility for generating blank files for Go apps, utilities and packages
  • SHDoc — Tool for viewing and exporting docs for shell scripts
  • Sonar — Utility for showing user Slack status in Atlassian Jira
  • SourceIndex — Utility for generating an index for source archives
  • SSLScan Client — Pretty awesome command-line client for public SSLLabs API
  • subdy — CLI for subdomain.center API
  • swptop — Simple utility for viewing swap consumption of processes
  • uc — Simple utility for counting unique lines
  • updown-badge-server — Service for generating badges for updown.io checks
  • yo — Command-line YAML processor

CI Status

Branch Status
master CI
develop CI

Contributing

Before contributing to this project please read our Contributing Guidelines.

License

Apache License, Version 2.0