~shulhan/pakakeh.go

A collection of tools, public client APIs, and libraries for working with Go programming language.
lib/play: expose the Timeout variable
.github/workflows: update Go to v1.23.2
Release pakakeh.go v0.58.0 (2024-10-06)

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 library is released every month, usually at the first week of month.

#Public APIs

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

#Command Line Interface

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

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.

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

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

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

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.

#Libraries

ascii:: A library for working with ASCII characters.

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.

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.

floats64:: A library for working with slice of float64.

git:: A wrapper for git command line interface.

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

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

hunspell:: [WORK IN PROGRESS]. A library to parse the Hunspell file format.

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

ints:: A library for working with slice of integer.

ints64:: A library for working with slice of int64.

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).

reflect:: Package reflect extends the standard reflect package.

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

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/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.

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!