share

package module
v0.18.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 6, 2020 License: BSD-3-Clause Imports: 0 Imported by: 0

README

=  import "github/shuLhan/share"
:author: Shulhan
:email: <ms@kilabit.info>
:toc:
:url-gocard: https://goreportcard.com/report/github.com/shuLhan/share
:url-godoc: https://pkg.go.dev/github.com/shuLhan/share
:url-github-master: https://github.com/shuLhan/share/tree/master

image:https://img.shields.io/badge/go.dev-reference-007d9c?logo=go&logoColor=white&style=flat-square[GoDoc, link={url-godoc}]
image:https://goreportcard.com/badge/github.com/shuLhan/share[Go Report Card, link={url-gocard}]

A collection of public APIs and libraries for working with Go, and tools
written in Go.

==  Public APIs

*  link:{url-godoc}/api/telegram/bot[*Telegram bot*]: Package bot implement
   the Telegram Bot API https://core.telegram.org/bots/api.


==  Command Line Interface

*  link:{url-godoc}/cmd/gofmtcomment[*gofmtcomment*]: Program to convert
   multilines "/**/" comment into single line "//" format.

*  link:{url-godoc}/cmd/smtpcli[*smtpcli*]: Command smtpcli provide a command
   line interface to SMTP client protocol.


==  Libraries

*  link:{url-godoc}/lib/ascii[*ascii*]: A library for working with ASCII
   characters.

*  link:{url-godoc}/lib/bytes[*bytes*]: A library for working with slice of
   bytes.

*  link:{url-godoc}/lib/contact[*contact*]: A library to import contact from
   Google, Microsoft, or Yahoo

*  link:{url-godoc}/lib/crypto[*crypto*]: Package crypto provide a wrapper
   for standard crypto package.

*  link:{url-godoc}/lib/debug[*debug*]: Package debug provide global
   debug variable, initialized through environment variable "DEBUG" or
   directly.

*  link:{url-godoc}/lib/dns[*dns*]: A library for working with Domain Name
   System (DNS) protocol.

*  link:{url-godoc}/lib/dsv[*dsv*]: A library for working with delimited
   separated value (DSV).

*  link:{url-godoc}/lib/email[*email*]: A library for working with Internet
   Message Format as defined by RFC 5322.

**  link:{url-godoc}/lib/email/dkim[*dkim*]:  A library to parse and create
    DKIM-Signature header field value, as defined in RFC 6376.

**  link:{url-godoc}/lib/email/maildir[*maildir*]: A library to manage email
    using maildir format.

*  link:{url-godoc}/lib/errors[*errors*]: Package errors provide an error
   type with code.

*  link:{url-godoc}/lib/floats64[*floats64*]: A library for working with slice
   of float64.

*  link:{url-godoc}/lib/git[*git*]: A wrapper for git command line interface.

*  link:{url-godoc}/lib/http[*http*]: Custom HTTP server with memory file
   system and simplified routing handler.

*  link:{url-godoc}/lib/hunspell[*hunspell*]: Package hunspell is a library to
   parse the Hunspell file format.

*  link:{url-godoc}/lib/ini[*ini*]: A library for reading and writing INI
   configuration as defined by Git configuration file syntax.

*  link:{url-godoc}/lib/ints[*ints*]: A library for working with slice of
   integer.

*  link:{url-godoc}/lib/ints[*ints64*]: A library for working with slice of
   64 bit integer.

*  link:{url-godoc}/lib/io[*io*]: A library for reading and watching file,
   and reading from standard input.

*  link:{url-godoc}/lib/json[*json*]: Package json extends the capabilities of
   standard json package.

*  link:{url-godoc}/lib/math[*math*]: Package math provide generic functions
   working with math.

**  link:{url-godoc}/lib/math/big[*big*]: Package big extends the capabilities
    of standard "math/big" package by adding custom global precision to Float
    and Rat; and global rounding mode, and bits precision to Float.

*  link:{url-godoc}/lib/memfs[*memfs*]: Package memfs provide a library for
   mapping file system into memory and to generate a go file.

*  link:{url-godoc}/lib/mining[*mining*]: A library for data mining.

**  link:{url-godoc}/lib/mining/classifier/cart[*classifier/cart*]:
    Implementation of the Classification and Regression Tree by
    Breiman, et al.

**  link:{url-godoc}/lib/mining/classifier/crf[*classififer/crf*]:
    Implementation of the Cascaded Random Forest (CRF) algorithm, proposed by
    Baumann, Florian, et al.

**  link:{url-godoc}/lib/mining/classifier/rf[*classifier/rf*]:
    Implementation of ensemble of classifiers using random forest algorithm by
    Breiman and Cutler.

**  link:{url-godoc}/lib/mining/gain/gini[*gain/gini*]: A library to
    calculate Gini gain.

**  link:{url-godoc}/lib/mining/knn[*knn*]: Implementation of the K
    Nearest Neighbor (KNN) using Euclidian to compute the distance between
    samples.

**  link:{url-godoc}/lib/mining/resampling/lnsmote[*resampling/lnsmote*]:
    Implementation of the Local-Neighborhood algorithm from the paper of
    Maciejewski, Tomasz, and Jerzy Stefanowski.

**  link:{url-godoc}/lib/mining/resampling/smote[*resampling/smote*]:
    Implementation of the Synthetic Minority Oversampling TEchnique (SMOTE).

**  link:{url-godoc}/lib/mining/tree/binary[*tree/binary*]: Implementation of
    binary tree.

*  link:{url-godoc}/lib/net[*net*]: Constants and library for networking.

**  link:{url-godoc}/lib/net/html[*html*]: Package html extends the
    golang.org/x/net/html by providing simplified methods to Node.

*  link:{url-godoc}/lib/numbers[*numbers*]: A library for working with
   integer, float, slice of integer, and slice of floats.

*  link:{url-godoc}/lib/os/exec[*os/exec*]: Package exec wrap the standar package
"os/exec" to simplify calling Run with stdout and stderr.

*  link:{url-godoc}/lib/parser[*parser*]: Package parser provide a common text
   parser, using delimiters.

*  link:{url-godoc}/lib/reflect[*reflect*]: Package reflect extends the
   standard reflect package.

*  link:{url-godoc}/lib/runes[*runes*]: A library for working with slice of
   rune.

*  link:{url-godoc}/lib/sanitize[*sanitize*]: A library to sanitize markup
   document into plain text.

*  link:{url-godoc}/lib/smtp[*smtp*]: A library for building SMTP server or
   client.
   This package is working in progress.

*  link:{url-godoc}/lib/spf[*spf*]: Package spf implement Sender Policy
   Framework (SPF) per RFC 7208.

*  link:{url-godoc}/lib/sql[*sql*]: Package sql is an extension to standard
   library "database/sql.DB" that provide common functionality across DBMS.

*  link:{url-godoc}/lib/ssh[*ssh*]: Package ssh provide a wrapper for
   golang.org/x/crypto/ssh and a parser for SSH client configuration
   specification ssh_config(5).

*  link:{url-godoc}/lib/strings[*strings*]: A library for working with slice
   of string.

*  link:{url-godoc}/lib/tabula[*tabula*]: A library for working with rows,
   columns, or matrix (table), or in another terms working with data set.

*  link:{url-godoc}/lib/test[*test*]: A library for helping with testing.

*  link:{url-godoc}/lib/text[*text*]: A library for working with text.

**  link:{url-godoc}/lib/text/diff[*text/diff*]: Package diff implement text
    comparison.

*  link:{url-godoc}/lib/time[*time*]: A library for working with time.

*  link:{url-godoc}/lib/websocket[*websocket*]: Websocket library for server
   and client.  The websocket is tested with autobahn testsuite with 100%
   success rate.
   See link:{url-github-master}/lib/websocket/AUTOBAHN.adoc[the status
reports].

*  link:{url-godoc}/lib/xmlrpc[*xmlrpc*]: Package xmlrpc provide an
   implementation of XML-RPC specification, http://xmlrpc.com/spec.md.


==  Changelog

link:CHANGELOG.html[CHANGELOG].


==  Documentations

Beside {url-godoc}[GoDoc], that provides documentation for API in packages,
there are also additional documentations that we can't include inside source
code due to their scope and limitation of godoc formatting itself.

NOTE: The links below is used to be viewed locally, not through Github.

*  link:IMF.html[Internet Message Format (RFC 5322)]
**  link:MIME_I_FORMAT.html[MIME Part One: Format of Internet Message
    Bodies (RFC 2045)]
**  link:MIME_II_MEDIA_TYPES.html[MIME Part Two: Media Types (RFC 2046)]
**  link:MIME_V_CONFORMANCE.html[MIME Part Five: Conformance Criteria and
    Examples (RFC 2049)]

*  link:SASL.html[Simple Authentication and Security Layer (RFC 4422)]
**   link:SASL_PLAIN.html[The PLAIN Simple Authentication and Security
     Layer (SASL) Mechanism (RFC 4616)]

*  link:DKIM_OVERVIEW.html[DomainKeys Identified Mail Service Overview
   (RFC 5585)]
**  link:DKIM_THREATS.html[Analysis of Threats Motivating DKIM (RFC 4686)]
**  link:DKIM_DEVOPS.html[DKIM Development, Deployment, and Operations
    (RFC 5863)]
**  link:DKIM_SIGNATURES.html[DKIM Signatures (RFC 6376)]

*  link:SMTP.html[Simple Mail Transfer Protocol (RFC5321)]
**  link:ESMTP_DSN.html[Delivery Status Notification (RFC3461-3464)]
**  link:ESMTP_TLS.html[SMTP Service Extension for Secure SMTP over
    Transport Layer Security (RFC3207)]
**  link:ESMTP_AUTH.html[SMTP Service Extension for Authentication
    (RFC 4954)]

*  link:SPF.html[Sender Policy Framework version 1 (RFC 7208)]


The documentation created using
https://github.com/shuLhan/ciigo[`ciigo`].
First, install `ciigo` command line interface,

----
$ go install github.com/shuLhan/ciigo/cmd/ciigo
----

and then run

----
$ ciigo serve _doc/
----

to serve documentation on HTTP server at http://127.0.0.1:8080 and watch
changes on documentation files (".adoc") and regenerate the HTML
files.

To generate HTML files for all asciidoc and markdown files, run

----
$ ciigo convert _doc/
----


==  Credits

*  link:https://github.com/crossbario/autobahn-testsuite[Autobahn testsuite]

Documentation

Overview

Package share contains public APIs and libraries for working with Go language, and tools written in Go.

Index

Constants

View Source
const (
	// Version of this module.
	Version = "0.17.0"
)

Variables

This section is empty.

Functions

This section is empty.

Types

This section is empty.

Directories

Path Synopsis
api
telegram/bot
Package bot implement the Telegram Bot API https://core.telegram.org/bots/api.
Package bot implement the Telegram Bot API https://core.telegram.org/bots/api.
cmd
gofmtcomment
Command gofmtcomment is a program to convert "/**/" comment into "//".
Command gofmtcomment is a program to convert "/**/" comment into "//".
smtpcli
Command smtpcli provide a command line interface to SMTP client protocol.
Command smtpcli provide a command line interface to SMTP client protocol.
lib
ascii
Package ascii provide a library for working with ASCII characters.
Package ascii provide a library for working with ASCII characters.
bytes
Package bytes provide a library for working with byte or slice of bytes.
Package bytes provide a library for working with byte or slice of bytes.
contact
Package contact provide a library to import contact from Google, Microsoft, and Yahoo.
Package contact provide a library to import contact from Google, Microsoft, and Yahoo.
contact/google
Package google implement Google's contact API v3.
Package google implement Google's contact API v3.
contact/microsoft
Package microsoft implement Microsoft's Live contact API v1.0.
Package microsoft implement Microsoft's Live contact API v1.0.
contact/proofn
Package proofn implement Proofn contact.
Package proofn implement Proofn contact.
contact/vcard
Package vcard implement RFC6350 for encoding and decoding VCard formatted data.
Package vcard implement RFC6350 for encoding and decoding VCard formatted data.
contact/yahoo
Package yahoo implement user's contacts import using Yahoo API.
Package yahoo implement user's contacts import using Yahoo API.
crypto
Package crypto provide a wrapper for standard crypto package.
Package crypto provide a wrapper for standard crypto package.
debug
Package debug provide global debug variable, initialized through environment variable "DEBUG" or directly.
Package debug provide global debug variable, initialized through environment variable "DEBUG" or directly.
dns
Package dns implement DNS client and server.
Package dns implement DNS client and server.
dsv
Package dsv is a library for working with delimited separated value (DSV).
Package dsv is a library for working with delimited separated value (DSV).
email
Package email provide a library for working with Internet Message Format as defined by RFC 5322.
Package email provide a library for working with Internet Message Format as defined by RFC 5322.
email/dkim
Package dkim provide a library to parse and create DKIM-Signature header field value, as defined in RFC 6376, DomainKeys Identified Mail (DKIM) Signatures.
Package dkim provide a library to parse and create DKIM-Signature header field value, as defined in RFC 6376, DomainKeys Identified Mail (DKIM) Signatures.
email/maildir
Package maildir provide a library to manage email using maildir format.
Package maildir provide a library to manage email using maildir format.
errors
Package errors provide an error type with code.
Package errors provide an error type with code.
floats64
Package floats64 provide a library for working with slice of 64 bit float.
Package floats64 provide a library for working with slice of 64 bit float.
git
Package git provide a wrapper for git command line interface.
Package git provide a wrapper for git command line interface.
http
Package http implement custom HTTP server with memory file system and simplified routing handler.
Package http implement custom HTTP server with memory file system and simplified routing handler.
hunspell
Package hunspell is a library to parse the Hunspell file format.
Package hunspell is a library to parse the Hunspell file format.
ini
Package ini implement reading and writing INI configuration as defined by Git configuration file syntax.
Package ini implement reading and writing INI configuration as defined by Git configuration file syntax.
ints
Package ints provide a library for working with slice of integer.
Package ints provide a library for working with slice of integer.
ints64
Package ints64 provide a library for working with slice of 64 bit integer.
Package ints64 provide a library for working with slice of 64 bit integer.
io
Package io provide a library for reading and watching file, and reading from standard input.
Package io provide a library for reading and watching file, and reading from standard input.
json
Package json provide a library for working with JSON.
Package json provide a library for working with JSON.
math
Package math provide generic functions working with 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 and Rat; and global rounding mode, and bits precision to Float.
Package big extends the capabilities of standard "math/big" package by adding custom global precision to Float and Rat; and global rounding mode, and bits precision to Float.
memfs
Package memfs provide a library for mapping file system into memory and to generate a go file.
Package memfs provide a library for mapping file system into memory and to generate a go file.
mining/classifier/cart
Package cart implement the Classification and Regression Tree by Breiman, et al.
Package cart implement the Classification and Regression Tree by Breiman, et al.
mining/classifier/crf
Package crf implement the cascaded random forest algorithm, proposed by Baumann et.al in their paper: Baumann, Florian, et al.
Package crf implement the cascaded random forest algorithm, proposed by Baumann et.al in their paper: Baumann, Florian, et al.
mining/classifier/rf
Package rf implement ensemble of classifiers using random forest algorithm by Breiman and Cutler.
Package rf implement ensemble of classifiers using random forest algorithm by Breiman and Cutler.
mining/gain/gini
Package gini contain function to calculating Gini gain.
Package gini contain function to calculating Gini gain.
mining/knn
Package knn implement the K Nearest Neighbor using Euclidean to compute the distance between samples.
Package knn implement the K Nearest Neighbor using Euclidean to compute the distance between samples.
mining/resampling
Package resampling provide common interface, constants, and methods for resampling modules.
Package resampling provide common interface, constants, and methods for resampling modules.
mining/resampling/lnsmote
Package lnsmote implement the Local-Neighborhood algorithm from the paper, Maciejewski, Tomasz, and Jerzy Stefanowski.
Package lnsmote implement the Local-Neighborhood algorithm from the paper, Maciejewski, Tomasz, and Jerzy Stefanowski.
mining/resampling/smote
Package smote resamples a dataset by applying the Synthetic Minority Oversampling TEchnique (SMOTE).
Package smote resamples a dataset by applying the Synthetic Minority Oversampling TEchnique (SMOTE).
mining/tree/binary
Package binary contain implementation of binary tree.
Package binary contain implementation of binary tree.
net
Package net provide constants and library for networking.
Package net provide constants and library for networking.
net/html
Package html extends the golang.org/x/net/html by providing simplified methods to Node.
Package html extends the golang.org/x/net/html by providing simplified methods to Node.
numbers
Package numbers provide miscellaneous functions for working with integer, float, slice of integer, and slice of floats.
Package numbers provide miscellaneous functions for working with integer, float, slice of integer, and slice of floats.
os/exec
Package exec wrap the standar package "os/exec" to simplify calling Run with stdout and stderr.
Package exec wrap the standar package "os/exec" to simplify calling Run with stdout and stderr.
parser
Package parser provide a common text parser, using delimiters.
Package parser provide a common text parser, using delimiters.
reflect
Package reflect extends the standard reflect package.
Package reflect extends the standard reflect package.
runes
Package runes provide a library for working with a single rune or slice of rune.
Package runes provide a library for working with a single rune or slice of rune.
sanitize
Package sanitize provide a function to sanitize markup document into plain text.
Package sanitize provide a function to sanitize markup document into plain text.
smtp
Package smtp provide a library for building SMTP server and client.
Package smtp provide a library for building SMTP server and client.
spf
Package spf implement Sender Policy Framework (SPF) per RFC 7208.
Package spf implement Sender Policy Framework (SPF) per RFC 7208.
sql
Package sql is an extension to standard library "database/sql.DB" that provide common functionality across DBMS.
Package sql is an extension to 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).
Package ssh provide a wrapper for golang.org/x/crypto/ssh and a parser for SSH client configuration specification ssh_config(5).
strings
Package strings provide a library for working with string or slice of strings.
Package strings provide a library for working with string or slice of strings.
tabula
Package tabula is a Go library for working with rows, columns, or matrix (table), or in another terms working with data set.
Package tabula is a Go library for working with rows, columns, or matrix (table), or in another terms working with data set.
test
Package test provide library for helping with testing.
Package test provide library for helping with testing.
test/mock
Package mock provide a mocking for standard output and standard error.
Package mock provide a mocking for standard output and standard error.
text
Package text provide common a library for working with text.
Package text provide common a library for working with text.
text/diff
Package diff implement text comparison.
Package diff implement text comparison.
time
Package time provide a library for working with time.
Package time provide a library for working with time.
websocket
Package websocket provide a library for creating WebSocket server or client.
Package websocket provide a library for creating WebSocket server or client.
websocket/examples/cmd/client
Program client provide an example of chat client that connect to WebSocket server.
Program client provide an example of chat client that connect to WebSocket server.
websocket/examples/cmd/server
Program server provide an example of WebSocket server as group chat.
Program server provide an example of WebSocket server as group chat.
xmlrpc
Package xmlrpc provide an implementation of XML-RPC specification, http://xmlrpc.com/spec.md.
Package xmlrpc provide an implementation of XML-RPC specification, http://xmlrpc.com/spec.md.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL