We use technical cookies and visit statistics: Yandex Metrica and Zorky's own de-identified visit log (cookie zk_aid). We never collect form contents, search text or full IP addresses, and never sell data. Opt out with the button below, or with Global Privacy Control or Do Not Track in your browser. More about cookies and statistics.
Zorky CRMZorky CRM
EN|RU
@termdocs
← All jobs

Commandment, a DevOps-focused CLI framework built around go 1.27 generic methods

DEScore 57/1002d ago
Market insights
📊 DevOps / SRE: salaries and demand on the market
Stack
devopsgosre
Show company and link
Free. Sign in with email.
Apply
Upload your CV — we will connect you with the employer directly through our pool.
Send your CV →
Description
I made a CLI library that treats SRE/DevOps workflows as first class citizens. If your team makes many custom CLIs in go, you should check out this project! I started working on this project about a month before 1.27. Today I'm happy to announce that I’ve released `v1.0.0-rc.1` of Commandment, a Go framework for building typed command-line applications. The v1 feature set and public API are now essentially complete; this RC is the point where I want the design exposed to real use and criticism before I freeze it as `v1.0.0`. The main reason Commandment exists is that a nontrivial CLI tends to accumulate several overlapping descriptions of itself. As an SRE consultant, this has been a huge thorn in my side for the better part of a decade. I have played with different CLI libraries and design patterns within those libraries, but nothing really solved the problems I had for making production level CLI-based apps without a significant amount of custom code. A lot of my problems have to do with how most common Go CLI libraries are imperative by design. Commandment instead compiles a typed declaration into one semantic application model. Running the CLI, generating help and completion, inspecting it, and testing its semantics are different operations over that same model rather than separate approximations of it. Its as close to `declarative` as I could get it, and I think it looks pretty clean. Let's check out an example: type scanConfig struct { World string
Full description, company and the link to apply — after you sign in. Sign in
Employer contacts (email/phone/telegram) are hidden from the public preview — send your CV, and we will connect you directly.
Urgent question? Message @termdocs