Home

Awesome

import "github/shuLhan/share"

Go documentation.

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

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.

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

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/config:: Package config provide the ssh_config(5) parser and getter.

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

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!