Library

Use my algorithm to correctly obtain other processes' arguments

macOS popup depicting the libgetargv dynamic library

Fast, and correct algorithm

libgetargv uses the same code as getargv, so it is just as fast and resilient as the standalone tool.

LICENSE

Licensed under the BSD 3-Clause License, once you've joined the appropriate Github Sponsors tier, so the library is safe to use in commercial products.

Linking

I provide a dylib to link against, and am planning on providing a static library as well.

dSYM symbols

I provide a dSYM bundle to symbolicate the library when debugging your program.

Manpage

I provide a manpage that documents the library data types and functions.

Bindings to popular languages

I've made bindings to allow you to easily use libgetargv from your favorite language, and $DAY_JOB language too.

C/Obj-C

Libgetargv is written in C, out of necessity, and the C header for libgetargv is Objective-C compatible

C++

An idiomatic C++ library is provided as libgetargv++

Rust

There is a safe Rust crate that wraps the unsafe-bindings to the lib

Ruby

There are Ruby bindings for the lib hosted on RubyGems

Javascript/Typescript

Node.js bindings with Typescript types included are hosted on npm

Python

Python bindings are hosted on PyPi

Swift

There are idiomatic Swift bindings that wrap the C Language Target for the lib (this will be published in Apple's Swift package repo once they finally set it up)

Java

There is a Java package that provides JNI bindings for the lib as a maven jar artifact

C#

C# bindings are hosted on Nuget

Go

A Go package is available providing idiomatic go wrappers to the cgo bindings.

More

Additional language bindings are planned: Kotlin, PHP, and Perl

homepage link