~shulhan/pakakeh.go

A collection of tools, public client APIs, and libraries for working with Go programming language.
Release pakakeh.go v0.60.0 (2025-02-01)
lib/goanalysis: package to complement "go vet"
lib/memfs: return nil on AddChild if path is not included

clone

read-only
https://git.sr.ht/~shulhan/pakakeh.go
read/write
git@git.sr.ht:~shulhan/pakakeh.go

You can also use your local clone with git send-email.

#import "git.sr.ht/~shulhan/pakakeh.go"

Go documentation.

"pakakeh.go" is a collection of tools, public HTTP APIs, and libraries written and for working with Go programming language.

This Go module usually released every month, at the first week of the month.

#Public APIs

slack:: Package slack provide a simple API for sending message to Slack using only standard packages.

telegram/bot:: Package bot implement the Telegram Bot API.

#Command Line Interface

ansua:: The ansua command run a timer on defined duration and optionally run a command when timer finished.

bcrypt:: CLI to compare or generate hash using bcrypt.

emaildecode:: Program emaildecode convert the email body from quoted-printable to plain text.

epoch:: Program epoch print the current date and time (Unix seconds, milliseconds, nanoseconds, local time, and UTC time) or the date and time based on the epoch on first parameter.

gofmtcomment:: Program to convert multi lines "/**/" comments into single line "//" format.

httpdfs:: Program httpdfs implement [libhttp.Server] with [memfs.MemFS].

ini:: Program ini provide a command line interface to get and set values in the INI file format.

sendemail:: Program sendemail is command line interface that use lib/email and lib/smtp to send email.

smtpcli:: Command line interface SMTP client protocol. This is an example of implementation Client from lib/smtp.

totp:: Program to generate Time-based One-time Password using secret key. This is just an example of implementation of lib/totp. See https://sr.ht/~shulhan/gotp/ for a complete implementation that support encryption.

xtrk:: Program xtrk is command line interface to uncompress and/or unarchive a file. Supported format: bzip2, gzip, tar, zip, tar.bz2, tar.gz.

#Libraries

ascii:: A library for working with ASCII characters.

binary:: Package binary complement the standard [binary] package. Currently it implement append-only binary that encode the data using binary.Writer. We call them "Apo" for short.

bytes:: A library for working with slice of bytes.

clise:: Package clise implements circular slice.

contact:: A library to import contact from Google, Microsoft, or Yahoo.

contact/google:: Package "contact/google" implement Google's contact API v3.

contact/microsoft:: Package "contact/microsoft" implement Microsoft's Live contact API v1.0.

contact/vcard:: Package "contact/vcard" implement RFC6350 for encoding and decoding VCard formatted data.

contact/yahoo:: Package yahoo implement user's contacts import using Yahoo API.

crypto:: Package crypto provide a wrapper to simplify working with standard crypto package.

debug:: Package debug provide global debug variable, initialized through environment variable "DEBUG" or directly.

dns:: A library for working with Domain Name System (DNS) protocol.

dsv:: A library for working with delimited separated value (DSV).

email:: A library for working with Internet Message Format, as defined in RFC 5322.

email/dkim:: A library to parse and create DKIM-Signature header field value, as defined in RFC 6376.

email/maildir:: A library to manage email using maildir format.

errors:: Package errors provide an error type with Code, Message, and Name.

git:: A wrapper for git command line interface.

hexdump:: Package hexdump implements reading and writing bytes from and into hexadecimal number. It support parsing output from hexdump(1) tool.

html:: Package html extends the golang.org/x/net/html by providing simplified methods for working with Node.

http:: Package http extends the standard http package with simplified routing handler and builtin memory file system.

http/sseclient:: Package sseclient implement HTTP client for Server-Sent Events (SSE).

ini:: A library for reading and writing INI configuration as defined by Git configuration file syntax.

json:: Package json extends the capabilities of standard json package.

math:: Package math provide generic functions working with math.

math/big:: Package big extends the capabilities of standard "math/big" package by adding custom global precision to Float, Int, and Rat, global rounding mode, and custom bits precision to Float.

memfs:: A library for mapping file system into memory and to generate an embedded Go file from it.

mining:: A library for data mining.

mining/classifiers/cart:: An implementation of the Classification and Regression Tree by Breiman, et al.

mining/classifier/crf:: An implementation of the Cascaded Random Forest (CRF) algorithm, by Baumann, Florian, et al.

mining/classifier/rf:: An implementation of ensemble of classifiers using random forest algorithm by Breiman and Cutler.

mining/gain/gini:: A library to calculate Gini gain.

mining/knn:: An implementation of the K Nearest Neighbor (KNN) using Euclidian to compute the distance between samples.

mining/resampling/lnsmote:: An implementation of the Local-Neighborhood algorithm from the paper of Maciejewski, Tomasz, and Jerzy Stefanowski.

mining/resampling/smote:: An implementation of the Synthetic Minority Oversampling TEchnique (SMOTE).

mining/tree/binary:: An implementation of binary tree.

mlog:: Package mlog implement buffered multi writers of log.

net:: Constants and library for networking.

numbers:: A library for working with integer, float, slice of integer, and slice of floats.

os:: Package os extend the standard os package to provide additional functionalities.

os/exec:: Package exec wrap the standar package "os/exec" to simplify calling Run with stdout and stderr.

paseto:: A simple, ready to use, implementation of Platform-Agnostic SEcurity TOkens (PASETO).

path:: Package path implements utility routines for manipulating slash-separated paths.

play:: Package play provides callable APIs and HTTP handlers to format, run, and test Go code, similar to Go playground but using HTTP instead of WebSocket.

reflect:: Package reflect extends the standard reflect package.

runes:: A library for working with slice of rune.

slices:: Package slices complement the standard slices package for working with slices with comparable and [cmp.Ordered] types.

smtp:: A library for building SMTP server or client. This package is working in progress.

spf:: Package spf implement Sender Policy Framework (SPF) per RFC 7208.

sql:: Package sql extends the standard library "database/sql.DB" that provide common functionality across DBMS.

ssh:: Package ssh provide a wrapper for golang.org/x/crypto/ssh and a parser for SSH client configuration specification ssh_config(5).

ssh/sftp:: Package sftp implement native SSH File Transport Protocol v3.

sshconfig:: Package config provide the ssh_config(5) parser and getter.

strings:: A library for working with slice of string.

tabula:: A library for working with rows, columns, or matrix (table), or in another terms working with data set.

telemetry:: Package telemetry is a library for collecting various [Metric], for example from standard runtime/metrics, and send or write it to one or more [Forwarder].

test:: A library for helping with testing.

test/httptest:: Package httptest implement testing HTTP package.

test/mock:: Package mock provide a mocking for standard output and standard error.

text:: A library for working with text.

text/diff:: Package diff implement text comparison.

time:: A library for working with time.

totp:: Package totp implement Time-Based One-Time Password Algorithm based on RFC 6238.

watchfs:: Package watchfs implement naive file and directory watcher. This package is deprecated, we keep it here for historical only. The new implementation should use "watchfs/v2".

watchfs/v2:: Package watchfs implement naive file watcher. The version 2 simplify watching single file and directory. For directory watcher, it watch only one file instead of all included files.

websocket:: The WebSocket library for server and client. This WebSocket library has been tested with autobahn testsuite with 100% success rate. the status report.

xmlrpc:: Package xmlrpc provide an implementation of XML-RPC specification.

#Changelog

Latest CHANGELOG.

#Credits

Autobahn testsuite for testing WebSocket library.

That's it! Happy hacking!

Do not follow this link