...

Packages

Standard library ▾

Name Synopsis
archive
tar Package tar implements access to tar archives.
zip Package zip provides support for reading and writing ZIP archives.
arena The arena package provides the ability to allocate memory for a collection of Go values and free that space manually all at once, safely.
bufio Package bufio implements buffered I/O. It wraps an io.Reader or io.Writer object, creating another object (Reader or Writer) that also implements the interface but provides buffering and some help for textual I/O.
builtin Package builtin provides documentation for Go's predeclared identifiers.
bytes Package bytes implements functions for the manipulation of byte slices.
cmp Package cmp provides types and functions related to comparing ordered values.
compress
bzip2 Package bzip2 implements bzip2 decompression.
flate Package flate implements the DEFLATE compressed data format, described in RFC 1951.
gzip Package gzip implements reading and writing of gzip format compressed files, as specified in RFC 1952.
lzw Package lzw implements the Lempel-Ziv-Welch compressed data format, described in T. A. Welch, “A Technique for High-Performance Data Compression”, Computer, 17(6) (June 1984), pp 8-19.
zlib Package zlib implements reading and writing of zlib format compressed data, as specified in RFC 1950.
container
heap Package heap provides heap operations for any type that implements heap.Interface.
list Package list implements a doubly linked list.
ring Package ring implements operations on circular lists.
context Package context defines the Context type, which carries deadlines, cancellation signals, and other request-scoped values across API boundaries and between processes.
crypto Package crypto collects common cryptographic constants.
aes Package aes implements AES encryption (formerly Rijndael), as defined in U.S. Federal Information Processing Standards Publication 197.
boring Package boring exposes functions that are only available when building with Go+BoringCrypto.
cipher Package cipher implements standard block cipher modes that can be wrapped around low-level block cipher implementations.
des Package des implements the Data Encryption Standard (DES) and the Triple Data Encryption Algorithm (TDEA) as defined in U.S. Federal Information Processing Standards Publication 46-3.
dsa Package dsa implements the Digital Signature Algorithm, as defined in FIPS 186-3.
ecdh Package ecdh implements Elliptic Curve Diffie-Hellman over NIST curves and Curve25519.
ecdsa Package ecdsa implements the Elliptic Curve Digital Signature Algorithm, as defined in FIPS 186-4 and SEC 1, Version 2.0.
ed25519 Package ed25519 implements the Ed25519 signature algorithm.
elliptic Package elliptic implements the standard NIST P-224, P-256, P-384, and P-521 elliptic curves over prime fields.
hmac Package hmac implements the Keyed-Hash Message Authentication Code (HMAC) as defined in U.S. Federal Information Processing Standards Publication 198.
md5 Package md5 implements the MD5 hash algorithm as defined in RFC 1321.
rand Package rand implements a cryptographically secure random number generator.
rc4 Package rc4 implements RC4 encryption, as defined in Bruce Schneier's Applied Cryptography.
rsa Package rsa implements RSA encryption as specified in PKCS #1 and RFC 8017.
sha1 Package sha1 implements the SHA-1 hash algorithm as defined in RFC 3174.
sha256 Package sha256 implements the SHA224 and SHA256 hash algorithms as defined in FIPS 180-4.
sha512 Package sha512 implements the SHA-384, SHA-512, SHA-512/224, and SHA-512/256 hash algorithms as defined in FIPS 180-4.
subtle Package subtle implements functions that are often useful in cryptographic code but require careful thought to use correctly.
tls Package tls partially implements TLS 1.2, as specified in RFC 5246, and TLS 1.3, as specified in RFC 8446.
fipsonly Package fipsonly restricts all TLS configuration to FIPS-approved settings.
x509 Package x509 implements a subset of the X.509 standard.
pkix Package pkix contains shared, low level structures used for ASN.1 parsing and serialization of X.509 certificates, CRL and OCSP.
database
sql Package sql provides a generic interface around SQL (or SQL-like) databases.
driver Package driver defines interfaces to be implemented by database drivers as used by package sql.
debug
buildinfo Package buildinfo provides access to information embedded in a Go binary about how it was built.
dwarf Package dwarf provides access to DWARF debugging information loaded from executable files, as defined in the DWARF 2.0 Standard at http://dwarfstd.org/doc/dwarf-2.0.0.pdf.
elf Package elf implements access to ELF object files.
gosym Package gosym implements access to the Go symbol and line number tables embedded in Go binaries generated by the gc compilers.
macho Package macho implements access to Mach-O object files.
pe Package pe implements access to PE (Microsoft Windows Portable Executable) files.
plan9obj Package plan9obj implements access to Plan 9 a.out object files.
embed Package embed provides access to files embedded in the running Go program.
encoding Package encoding defines interfaces shared by other packages that convert data to and from byte-level and textual representations.
ascii85 Package ascii85 implements the ascii85 data encoding as used in the btoa tool and Adobe's PostScript and PDF document formats.
asn1 Package asn1 implements parsing of DER-encoded ASN.1 data structures, as defined in ITU-T Rec X.690.
base32 Package base32 implements base32 encoding as specified by RFC 4648.
base64 Package base64 implements base64 encoding as specified by RFC 4648.
binary Package binary implements simple translation between numbers and byte sequences and encoding and decoding of varints.
csv Package csv reads and writes comma-separated values (CSV) files.
gob Package gob manages streams of gobs - binary values exchanged between an [Encoder] (transmitter) and a [Decoder] (receiver).
hex Package hex implements hexadecimal encoding and decoding.
json Package json implements encoding and decoding of JSON as defined in RFC 7159.
pem Package pem implements the PEM data encoding, which originated in Privacy Enhanced Mail.
xml Package xml implements a simple XML 1.0 parser that understands XML name spaces.
errors Package errors implements functions to manipulate errors.
expvar Package expvar provides a standardized interface to public variables, such as operation counters in servers.
flag Package flag implements command-line flag parsing.
fmt Package fmt implements formatted I/O with functions analogous to C's printf and scanf.
go
ast Package ast declares the types used to represent syntax trees for Go packages.
build Package build gathers information about Go packages.
constraint Package constraint implements parsing and evaluation of build constraint lines.
constant Package constant implements Values representing untyped Go constants and their corresponding operations.
doc Package doc extracts source code documentation from a Go AST.
comment Package comment implements parsing and reformatting of Go doc comments, (documentation comments), which are comments that immediately precede a top-level declaration of a package, const, func, type, or var.
format Package format implements standard formatting of Go source.
importer Package importer provides access to export data importers.
parser Package parser implements a parser for Go source files.
printer Package printer implements printing of AST nodes.
scanner Package scanner implements a scanner for Go source text.
token Package token defines constants representing the lexical tokens of the Go programming language and basic operations on tokens (printing, predicates).
types Package types declares the data types and implements the algorithms for type-checking of Go packages.
version Package version provides operations on [Go versions] in [Go toolchain name syntax]: strings like "go1.20", "go1.21.0", "go1.22rc2", and "go1.23.4-bigcorp".
hash Package hash provides interfaces for hash functions.
adler32 Package adler32 implements the Adler-32 checksum.
crc32 Package crc32 implements the 32-bit cyclic redundancy check, or CRC-32, checksum.
crc64 Package crc64 implements the 64-bit cyclic redundancy check, or CRC-64, checksum.
fnv Package fnv implements FNV-1 and FNV-1a, non-cryptographic hash functions created by Glenn Fowler, Landon Curt Noll, and Phong Vo.
maphash Package maphash provides hash functions on byte sequences.
html Package html provides functions for escaping and unescaping HTML text.
template Package template (html/template) implements data-driven templates for generating HTML output safe against code injection.
image Package image implements a basic 2-D image library.
color Package color implements a basic color library.
palette Package palette provides standard color palettes.
draw Package draw provides image composition functions.
gif Package gif implements a GIF image decoder and encoder.
jpeg Package jpeg implements a JPEG image decoder and encoder.
png Package png implements a PNG image decoder and encoder.
index
suffixarray Package suffixarray implements substring search in logarithmic time using an in-memory suffix array.
io Package io provides basic interfaces to I/O primitives.
fs Package fs defines basic interfaces to a file system.
ioutil Package ioutil implements some I/O utility functions.
iter Package iter provides basic definitions and operations related to iteration in Go.
log Package log implements a simple logging package.
slog Package slog provides structured logging, in which log records include a message, a severity level, and various other attributes expressed as key-value pairs.
syslog Package syslog provides a simple interface to the system log service.
maps Package maps defines various functions useful with maps of any type.
math Package math provides basic constants and mathematical functions.
big Package big implements arbitrary-precision arithmetic (big numbers).
bits Package bits implements bit counting and manipulation functions for the predeclared unsigned integer types.
cmplx Package cmplx provides basic constants and mathematical functions for complex numbers.
rand Package rand implements pseudo-random number generators suitable for tasks such as simulation, but it should not be used for security-sensitive work.
v2 Package rand implements pseudo-random number generators suitable for tasks such as simulation, but it should not be used for security-sensitive work.
mime Package mime implements parts of the MIME spec.
multipart Package multipart implements MIME multipart parsing, as defined in RFC 2046.
quotedprintable Package quotedprintable implements quoted-printable encoding as specified by RFC 2045.
net Package net provides a portable interface for network I/O, including TCP/IP, UDP, domain name resolution, and Unix domain sockets.
http Package http provides HTTP client and server implementations.
cgi Package cgi implements CGI (Common Gateway Interface) as specified in RFC 3875.
cookiejar Package cookiejar implements an in-memory RFC 6265-compliant http.CookieJar.
fcgi Package fcgi implements the FastCGI protocol.
httptest Package httptest provides utilities for HTTP testing.
httptrace Package httptrace provides mechanisms to trace the events within HTTP client requests.
httputil Package httputil provides HTTP utility functions, complementing the more common ones in the net/http package.
pprof Package pprof serves via its HTTP server runtime profiling data in the format expected by the pprof visualization tool.
mail Package mail implements parsing of mail messages.
netip Package netip defines an IP address type that's a small value type.
rpc Package rpc provides access to the exported methods of an object across a network or other I/O connection.
jsonrpc Package jsonrpc implements a JSON-RPC 1.0 ClientCodec and ServerCodec for the rpc package.
smtp Package smtp implements the Simple Mail Transfer Protocol as defined in RFC 5321.
textproto Package textproto implements generic support for text-based request/response protocols in the style of HTTP, NNTP, and SMTP.
url Package url parses URLs and implements query escaping.
os Package os provides a platform-independent interface to operating system functionality.
exec Package exec runs external commands.
signal Package signal implements access to incoming signals.
user Package user allows user account lookups by name or id.
path Package path implements utility routines for manipulating slash-separated paths.
filepath Package filepath implements utility routines for manipulating filename paths in a way compatible with the target operating system-defined file paths.
plugin Package plugin implements loading and symbol resolution of Go plugins.
reflect Package reflect implements run-time reflection, allowing a program to manipulate objects with arbitrary types.
regexp Package regexp implements regular expression search.
syntax Package syntax parses regular expressions into parse trees and compiles parse trees into programs.
runtime Package runtime contains operations that interact with Go's runtime system, such as functions to control goroutines.
asan
cgo Package cgo contains runtime support for code generated by the cgo tool.
coverage
debug Package debug contains facilities for programs to debug themselves while they are running.
metrics Package metrics provides a stable interface to access implementation-defined metrics exported by the Go runtime.
msan
pprof Package pprof writes runtime profiling data in the format expected by the pprof visualization tool.
race Package race implements data race detection logic.
trace Package trace contains facilities for programs to generate traces for the Go execution tracer.
slices Package slices defines various functions useful with slices of any type.
sort Package sort provides primitives for sorting slices and user-defined collections.
strconv Package strconv implements conversions to and from string representations of basic data types.
strings Package strings implements simple functions to manipulate UTF-8 encoded strings.
sync Package sync provides basic synchronization primitives such as mutual exclusion locks.
atomic Package atomic provides low-level atomic memory primitives useful for implementing synchronization algorithms.
syscall Package syscall contains an interface to the low-level operating system primitives.
js Package js gives access to the WebAssembly host environment when using the js/wasm architecture.
testing Package testing provides support for automated testing of Go packages.
fstest Package fstest implements support for testing implementations and users of file systems.
iotest Package iotest implements Readers and Writers useful mainly for testing.
quick Package quick implements utility functions to help with black box testing.
slogtest Package slogtest implements support for testing implementations of log/slog.Handler.
text
scanner Package scanner provides a scanner and tokenizer for UTF-8-encoded text.
tabwriter Package tabwriter implements a write filter (tabwriter.Writer) that translates tabbed columns in input into properly aligned text.
template Package template implements data-driven templates for generating textual output.
parse Package parse builds parse trees for templates as defined by text/template and html/template.
time Package time provides functionality for measuring and displaying time.
tzdata Package tzdata provides an embedded copy of the timezone database.
unicode Package unicode provides data and functions to test some properties of Unicode code points.
utf16 Package utf16 implements encoding and decoding of UTF-16 sequences.
utf8 Package utf8 implements functions and constants to support text encoded in UTF-8.
unsafe Package unsafe contains operations that step around the type safety of Go programs.

Third party ▾

Name Synopsis
github.com
TylerBrock
colorjson
examples
bytedance
sonic
ast
decoder
encoder
issue_test
plugin
loader
option
unquote
utf8
chenzhuoyu
base64x
iasm
cmd
iasm
expr
obj
repl
x86_64
fatih
color Package color is an ANSI color package to output colorized or SGR defined output to the standard output.
gabriel-vasile
mimetype Package mimetype uses magic number signatures to detect the MIME type of a file.
gin-contrib
sse
gin-gonic
gin Package gin implements a HTTP web framework called gin.
binding
ginS
render
go-mail
mail Package gomail provides a simple interface to compose emails and to mail them efficiently.
go-playground
locales
af
af_NA
af_ZA
agq
agq_CM
ak
ak_GH
am
am_ET
ar
ar_001
ar_AE
ar_BH
ar_DJ
ar_DZ
ar_EG
ar_EH
ar_ER
ar_IL
ar_IQ
ar_JO
ar_KM
ar_KW
ar_LB
ar_LY
ar_MA
ar_MR
ar_OM
ar_PS
ar_QA
ar_SA
ar_SD
ar_SO
ar_SS
ar_SY
ar_TD
ar_TN
ar_YE
as
as_IN
asa
asa_TZ
ast
ast_ES
az
az_Cyrl
az_Cyrl_AZ
az_Latn
az_Latn_AZ
bas
bas_CM
be
be_BY
bem
bem_ZM
bez
bez_TZ
bg
bg_BG
bm
bm_ML
bn
bn_BD
bn_IN
bo
bo_CN
bo_IN
br
br_FR
brx
brx_IN
bs
bs_Cyrl
bs_Cyrl_BA
bs_Latn
bs_Latn_BA
ca
ca_AD
ca_ES
ca_ES_VALENCIA
ca_FR
ca_IT
ccp
ccp_BD
ccp_IN
ce
ce_RU
ceb
ceb_PH
cgg
cgg_UG
chr
chr_US
ckb
ckb_IQ
ckb_IR
cmd
cs
cs_CZ
cu
cu_RU
currency
cy
cy_GB
da
da_DK
da_GL
dav
dav_KE
de
de_AT
de_BE
de_CH
de_DE
de_IT
de_LI
de_LU
dje
dje_NE
dsb
dsb_DE
dua
dua_CM
dyo
dyo_SN
dz
dz_BT
ebu
ebu_KE
ee
ee_GH
ee_TG
el
el_CY
el_GR
en
en_001
en_150
en_AE
en_AG
en_AI
en_AS
en_AT
en_AU
en_BB
en_BE
en_BI
en_BM
en_BS
en_BW
en_BZ
en_CA
en_CC
en_CH
en_CK
en_CM
en_CX
en_CY
en_DE
en_DG
en_DK
en_DM
en_ER
en_FI
en_FJ
en_FK
en_FM
en_GB
en_GD
en_GG
en_GH
en_GI
en_GM
en_GU
en_GY
en_HK
en_IE
en_IL
en_IM
en_IN
en_IO
en_JE
en_JM
en_KE
en_KI
en_KN
en_KY
en_LC
en_LR
en_LS
en_MG
en_MH
en_MO
en_MP
en_MS
en_MT
en_MU
en_MW
en_MY
en_NA
en_NF
en_NG
en_NL
en_NR
en_NU
en_NZ
en_PG
en_PH
en_PK
en_PN
en_PR
en_PW
en_RW
en_SB
en_SC
en_SD
en_SE
en_SG
en_SH
en_SI
en_SL
en_SS
en_SX
en_SZ
en_TC
en_TK
en_TO
en_TT
en_TV
en_TZ
en_UG
en_UM
en_US
en_US_POSIX
en_VC
en_VG
en_VI
en_VU
en_WS
en_ZA
en_ZM
en_ZW
eo
eo_001
es
es_419
es_AR
es_BO
es_BR
es_BZ
es_CL
es_CO
es_CR
es_CU
es_DO
es_EA
es_EC
es_ES
es_GQ
es_GT
es_HN
es_IC
es_MX
es_NI
es_PA
es_PE
es_PH
es_PR
es_PY
es_SV
es_US
es_UY
es_VE
et
et_EE
eu
eu_ES
ewo
ewo_CM
fa
fa_AF
fa_IR
ff
ff_CM
ff_GN
ff_Latn
ff_Latn_BF
ff_Latn_CM
ff_Latn_GH
ff_Latn_GM
ff_Latn_GN
ff_Latn_GW
ff_Latn_LR
ff_Latn_MR
ff_Latn_NE
ff_Latn_NG
ff_Latn_SL
ff_Latn_SN
ff_MR
ff_SN
fi
fi_FI
fil
fil_PH
fo
fo_DK
fo_FO
fr
fr_BE
fr_BF
fr_BI
fr_BJ
fr_BL
fr_CA
fr_CD
fr_CF
fr_CG
fr_CH
fr_CI
fr_CM
fr_DJ
fr_DZ
fr_FR
fr_GA
fr_GF
fr_GN
fr_GP
fr_GQ
fr_HT
fr_KM
fr_LU
fr_MA
fr_MC
fr_MF
fr_MG
fr_ML
fr_MQ
fr_MR
fr_MU
fr_NC
fr_NE
fr_PF
fr_PM
fr_RE
fr_RW
fr_SC
fr_SN
fr_SY
fr_TD
fr_TG
fr_TN
fr_VU
fr_WF
fr_YT
fur
fur_IT
fy
fy_NL
ga
ga_GB
ga_IE
gd
gd_GB
gl
gl_ES
gsw
gsw_CH
gsw_FR
gsw_LI
gu
gu_IN
guz
guz_KE
gv
gv_IM
ha
ha_GH
ha_NE
ha_NG
haw
haw_US
he
he_IL
hi
hi_IN
hr
hr_BA
hr_HR
hsb
hsb_DE
hu
hu_HU
hy
hy_AM
ia
ia_001
id
id_ID
ig
ig_NG
ii
ii_CN
is
is_IS
it
it_CH
it_IT
it_SM
it_VA
ja
ja_JP
jgo
jgo_CM
jmc
jmc_TZ
jv
jv_ID
ka
ka_GE
kab
kab_DZ
kam
kam_KE
kde
kde_TZ
kea
kea_CV
khq
khq_ML
ki
ki_KE
kk
kk_KZ
kkj
kkj_CM
kl
kl_GL
kln
kln_KE
km
km_KH
kn
kn_IN
ko
ko_KP
ko_KR
kok
kok_IN
ks
ks_IN
ksb
ksb_TZ
ksf
ksf_CM
ksh
ksh_DE
ku
ku_TR
kw
kw_GB
ky
ky_KG
lag
lag_TZ
lb
lb_LU
lg
lg_UG
lkt
lkt_US
ln
ln_AO
ln_CD
ln_CF
ln_CG
lo
lo_LA
lrc
lrc_IQ
lrc_IR
lt
lt_LT
lu
lu_CD
luo
luo_KE
luy
luy_KE
lv
lv_LV
mas
mas_KE
mas_TZ
mer
mer_KE
mfe
mfe_MU
mg
mg_MG
mgh
mgh_MZ
mgo
mgo_CM
mi
mi_NZ
mk
mk_MK
ml
ml_IN
mn
mn_MN
mr
mr_IN
ms
ms_BN
ms_MY
ms_SG
mt
mt_MT
mua
mua_CM
my
my_MM
mzn
mzn_IR
naq
naq_NA
nb
nb_NO
nb_SJ
nd
nd_ZW
nds
nds_DE
nds_NL
ne
ne_IN
ne_NP
nl
nl_AW
nl_BE
nl_BQ
nl_CW
nl_NL
nl_SR
nl_SX
nmg
nmg_CM
nn
nn_NO
nnh
nnh_CM
nus
nus_SS
nyn
nyn_UG
om
om_ET
om_KE
or
or_IN
os
os_GE
os_RU
pa
pa_Arab
pa_Arab_PK
pa_Guru
pa_Guru_IN
pl
pl_PL
prg
prg_001
ps
ps_AF
ps_PK
pt
pt_AO
pt_BR
pt_CH
pt_CV
pt_GQ
pt_GW
pt_LU
pt_MO
pt_MZ
pt_PT
pt_ST
pt_TL
qu
qu_BO
qu_EC
qu_PE
rm
rm_CH
rn
rn_BI
ro
ro_MD
ro_RO
rof
rof_TZ
root
ru
ru_BY
ru_KG
ru_KZ
ru_MD
ru_RU
ru_UA
rw
rw_RW
rwk
rwk_TZ
sah
sah_RU
saq
saq_KE
sbp
sbp_TZ
sd
sd_PK
se
se_FI
se_NO
se_SE
seh
seh_MZ
ses
ses_ML
sg
sg_CF
shi
shi_Latn
shi_Latn_MA
shi_Tfng
shi_Tfng_MA
si
si_LK
sk
sk_SK
sl
sl_SI
smn
smn_FI
sn
sn_ZW
so
so_DJ
so_ET
so_KE
so_SO
sq
sq_AL
sq_MK
sq_XK
sr
sr_Cyrl
sr_Cyrl_BA
sr_Cyrl_ME
sr_Cyrl_RS
sr_Cyrl_XK
sr_Latn
sr_Latn_BA
sr_Latn_ME
sr_Latn_RS
sr_Latn_XK
sv
sv_AX
sv_FI
sv_SE
sw
sw_CD
sw_KE
sw_TZ
sw_UG
ta
ta_IN
ta_LK
ta_MY
ta_SG
te
te_IN
teo
teo_KE
teo_UG
tg
tg_TJ
th
th_TH
ti
ti_ER
ti_ET
tk
tk_TM
to
to_TO
tr
tr_CY
tr_TR
tt
tt_RU
twq
twq_NE
tzm
tzm_MA
ug
ug_CN
uk
uk_UA
ur
ur_IN
ur_PK
uz
uz_Arab
uz_Arab_AF
uz_Cyrl
uz_Cyrl_UZ
uz_Latn
uz_Latn_UZ
vai
vai_Latn
vai_Latn_LR
vai_Vaii
vai_Vaii_LR
vi
vi_VN
vo
vo_001
vun
vun_TZ
wae
wae_CH
wo
wo_SN
xh
xh_ZA
xog
xog_UG
yav
yav_CM
yi
yi_001
yo
yo_BJ
yo_NG
yue
yue_HK
yue_Hans
yue_Hans_CN
yue_Hant
yue_Hant_HK
zgh
zgh_MA
zh
zh_Hans
zh_Hans_CN
zh_Hans_HK
zh_Hans_MO
zh_Hans_SG
zh_Hant
zh_Hant_HK
zh_Hant_MO
zh_Hant_TW
zu
zu_ZA
universal-translator
validator
v10 Package validator implements value validations for structs and individual fields based on tags.
non-standard
validators
translations
ar
en
es
fa
fr
id
it
ja
lv
nl
pt
pt_BR
ru
tr
vi
zh
zh_tw
goccy
go-json
goph
emperror Package emperror provides error handling solutions and tools for libraries and applications.
handler
airbrakehandler Package airbrakehandler provides Airbrake/Errbit integration.
bugsnaghandler Package bugsnaghandler provides Bugsnag integration.
logrushandler Package logrushandler provides Logrus integration.
rollbarhandler Package rollbarhandler provides Rollbar integration.
sentryhandler
httperr
json-iterator
go Package jsoniter implements encoding and decoding of JSON as defined in RFC 4627 and provides interfaces with identical syntax of standard lib encoding/json.
extra
klauspost
cpuid
v2 Package cpuid provides information about the CPU running the current program.
cmd
cpuid Package cpuid provides information about the CPU running the current program.
konsorten
go-windows-terminal-sequences
leodido
go-urn
scim
schema
mattn
go-colorable
cmd
colorable
go-isatty Package isatty implements interface to isatty
modern-go
concurrent
reflect2
noirbizarre
gonja A jinja like template-engine
builtins
statements
config
env
exec
ext
django
statements
time
loaders
nodes
parser
testutils
tokens
utils
pelletier
go-toml
v2 Package toml is a library to read and write TOML documents.
cmd
gotoml-test-decoder
gotoml-test-encoder
jsontoml Package jsontoml is a program that converts JSON to TOML.
tomljson Package tomljson is a program that converts TOML to JSON.
tomll Package tomll is a linter program for TOML.
tomltestgen tomltestgen retrieves a given version of the language-agnostic TOML test suite in https://github.com/BurntSushi/toml-test and generates go-toml unit tests.
ossfuzz
unstable Package unstable provides APIs that do not meet the backward compatibility guarantees yet.
pkg
errors Package errors provides simple error handling primitives.
sirupsen
logrus Package logrus is a structured logger for Go, completely API compatible with the standard library logger.
hooks
syslog
test The Test package is used for testing logrus.
twitchyliquid64
golang-asm
asm
arch Package arch defines architecture-specific information and support functions.
bio Package bio implements common I/O abstractions used within the Go toolchain.
dwarf Package dwarf generates DWARF debugging information.
goobj
obj
arm
arm64 Package arm64 implements an ARM64 assembler.
mips
ppc64 Package ppc64 implements a PPC64 assembler that assembles Go asm into the corresponding PPC64 instructions as defined by the Power ISA 3.0B.
riscv
s390x
wasm
x86
objabi
src
sys
unsafeheader Package unsafeheader contains header declarations for the Go runtime's slice and string implementations.
unsafeheader Package unsafeheader contains header declarations for the Go runtime's slice and string implementations.
ugorji
go
codec Package codec provides a High Performance, Feature-Rich Idiomatic Go 1.4+ codec/encoding library for binc, msgpack, cbor, json.
gitlab.hexacode.org
go-libs
chromem-go
wasm
cr3call
hctypes
mailer Example:
example
microservice Command: microservice
config
example
validate
requests
strapi
golang.org
x
arch
arm
armasm
armmap Armmap constructs the ARM opcode map from the instruction set CSV file.
armspec Armspec reads the “ARM Architecture Reference Manual” to collect instruction encoding details and writes those details to standard output in JSON format.
arm64
arm64asm
arm64gen
arm64spec
ppc64
ppc64asm Package ppc64asm implements decoding of 64-bit PowerPC machine code.
ppc64map ppc64map constructs the ppc64 opcode map from the instruction set CSV file.
ppc64spec Power64spec reads the “Power ISA V2.07” Manual to collect instruction encoding details and writes those details to standard output in CSV format.
ppc64util
x86
x86asm Package x86asm implements decoding of x86 machine code.
x86avxgen
x86csv Package x86csv provides means to work with "x86.csv".
x86map X86map constructs the x86 opcode map from the instruction set CSV file.
x86spec X86spec reads the “Intel® 64 and IA-32 Architectures Software Developer's Manual” to collect instruction encoding details and writes those details to standard output in CSV format.
xeddata Package xeddata provides utilities to work with XED datafiles.
crypto
acme Package acme provides an implementation of the Automatic Certificate Management Environment (ACME) spec, most famously used by Let's Encrypt.
autocert Package autocert provides automatic access to certificates from Let's Encrypt and any other ACME-based CA.
argon2 Package argon2 implements the key derivation function Argon2.
bcrypt Package bcrypt implements Provos and Mazières's bcrypt adaptive hashing algorithm.
blake2b Package blake2b implements the BLAKE2b hash algorithm defined by RFC 7693 and the extendable output function (XOF) BLAKE2Xb.
blake2s Package blake2s implements the BLAKE2s hash algorithm defined by RFC 7693 and the extendable output function (XOF) BLAKE2Xs.
blowfish Package blowfish implements Bruce Schneier's Blowfish encryption algorithm.
bn256 Package bn256 implements a particular bilinear group.
cast5 Package cast5 implements CAST5, as defined in RFC 2144.
chacha20 Package chacha20 implements the ChaCha20 and XChaCha20 encryption algorithms as specified in RFC 8439 and draft-irtf-cfrg-xchacha-01.
chacha20poly1305 Package chacha20poly1305 implements the ChaCha20-Poly1305 AEAD and its extended nonce variant XChaCha20-Poly1305, as specified in RFC 8439 and draft-irtf-cfrg-xchacha-01.
cryptobyte Package cryptobyte contains types that help with parsing and constructing length-prefixed, binary messages, including ASN.1 DER.
asn1 Package asn1 contains supporting types for parsing and building ASN.1 messages with the cryptobyte package.
curve25519 Package curve25519 provides an implementation of the X25519 function, which performs scalar multiplication on the elliptic curve known as Curve25519.
ed25519 Package ed25519 implements the Ed25519 signature algorithm.
hkdf Package hkdf implements the HMAC-based Extract-and-Expand Key Derivation Function (HKDF) as defined in RFC 5869.
md4 Package md4 implements the MD4 hash algorithm as defined in RFC 1320.
nacl
auth Package auth authenticates a message using a secret key.
box Package box authenticates and encrypts small messages using public-key cryptography.
secretbox Package secretbox encrypts and authenticates small messages.
sign Package sign signs small messages using public-key cryptography.
ocsp Package ocsp parses OCSP responses as specified in RFC 2560.
openpgp Package openpgp implements high level operations on OpenPGP messages.
armor Package armor implements OpenPGP ASCII Armor, see RFC 4880.
clearsign Package clearsign generates and processes OpenPGP, clear-signed data.
elgamal Package elgamal implements ElGamal encryption, suitable for OpenPGP, as specified in "A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms," IEEE Transactions on Information Theory, v.
errors Package errors contains common error types for the OpenPGP packages.
packet Package packet implements parsing and serialization of OpenPGP packets, as specified in RFC 4880.
s2k Package s2k implements the various OpenPGP string-to-key transforms as specified in RFC 4800 section 3.7.1.
otr Package otr implements the Off The Record protocol as specified in http://www.cypherpunks.ca/otr/Protocol-v2-3.1.0.html
pbkdf2 Package pbkdf2 implements the key derivation function PBKDF2 as defined in RFC 2898 / PKCS #5 v2.0.
pkcs12 Package pkcs12 implements some of PKCS#12.
poly1305 Package poly1305 implements Poly1305 one-time message authentication code as specified in https://cr.yp.to/mac/poly1305-20050329.pdf.
ripemd160 Package ripemd160 implements the RIPEMD-160 hash algorithm.
salsa20 Package salsa20 implements the Salsa20 stream cipher as specified in https://cr.yp.to/snuffle/spec.pdf.
salsa Package salsa provides low-level access to functions in the Salsa family.
scrypt Package scrypt implements the scrypt key derivation function as defined in Colin Percival's paper "Stronger Key Derivation via Sequential Memory-Hard Functions" (https://www.tarsnap.com/scrypt/scrypt.pdf).
sha3 Package sha3 implements the SHA-3 fixed-output-length hash functions and the SHAKE variable-output-length hash functions defined by FIPS-202.
ssh Package ssh implements an SSH client and server.
agent Package agent implements the ssh-agent protocol, and provides both a client and a server.
knownhosts Package knownhosts implements a parser for the OpenSSH known_hosts host key database, and provides utility functions for writing OpenSSH compliant known_hosts files.
terminal Package terminal provides support functions for dealing with terminals, as commonly found on UNIX systems.
test Package test contains integration tests for the golang.org/x/crypto/ssh package.
tea Package tea implements the TEA algorithm, as defined in Needham and Wheeler's 1994 technical report, “TEA, a Tiny Encryption Algorithm”.
twofish Package twofish implements Bruce Schneier's Twofish encryption algorithm.
x509roots
nss Package nss provides functionality for parsing NSS certdata.txt formatted certificate lists and extracting serverAuth roots.
xtea Package xtea implements XTEA encryption, as defined in Needham and Wheeler's 1997 technical report, "Tea extensions."
xts Package xts implements the XTS cipher mode as specified in IEEE P1619/D16.
net
bpf Package bpf implements marshaling and unmarshaling of programs for the Berkeley Packet Filter virtual machine, and provides a Go implementation of the virtual machine.
context Package context defines the Context type, which carries deadlines, cancelation signals, and other request-scoped values across API boundaries and between processes.
ctxhttp Package ctxhttp provides helper functions for performing context-aware HTTP requests.
dict Package dict implements the Dictionary Server Protocol as defined in RFC 2229.
dns
dnsmessage Package dnsmessage provides a mostly RFC 1035 compliant implementation of DNS message packing and unpacking.
html Package html implements an HTML5-compliant tokenizer and parser.
atom Package atom provides integer codes (also known as atoms) for a fixed set of frequently occurring HTML strings: tag names and attribute keys such as "p" and "id".
charset Package charset provides common text encodings for HTML documents.
http
httpguts Package httpguts provides functions implementing various details of the HTTP specification.
httpproxy Package httpproxy provides support for HTTP proxy determination based on environment variables, as provided by net/http's ProxyFromEnvironment function.
http2 Package http2 implements the HTTP/2 protocol.
h2c Package h2c implements the unencrypted "h2c" form of HTTP/2.
h2i The h2i command is an interactive HTTP/2 console.
hpack Package hpack implements HPACK, a compression format for efficiently representing HTTP header fields in the context of HTTP/2.
icmp Package icmp provides basic functions for the manipulation of messages used in the Internet Control Message Protocols, ICMPv4 and ICMPv6.
idna Package idna implements IDNA2008 using the compatibility processing defined by UTS (Unicode Technical Standard) #46, which defines a standard to deal with the transition from IDNA2003.
ipv4 Package ipv4 implements IP-level socket options for the Internet Protocol version 4.
ipv6 Package ipv6 implements IP-level socket options for the Internet Protocol version 6.
lif Package lif provides basic functions for the manipulation of logical network interfaces and interface addresses on Solaris.
nettest Package nettest provides utilities for network testing.
netutil Package netutil provides network utility functions, complementing the more common ones in the net package.
proxy Package proxy provides support for a variety of protocols to proxy network data.
publicsuffix Package publicsuffix provides a public suffix list based on data from https://publicsuffix.org/
route Package route provides basic functions for the manipulation of packet routing facilities on BSD variants.
trace Package trace implements tracing of requests and long-lived objects.
webdav Package webdav provides a WebDAV server implementation.
websocket Package websocket implements a client and server for the WebSocket protocol as specified in RFC 6455.
xsrftoken Package xsrftoken provides methods for generating and validating secure XSRF tokens.
sys
cpu Package cpu implements processor feature detection for various CPU architectures.
execabs Package execabs is a drop-in replacement for os/exec that requires PATH lookups to find absolute paths.
plan9 Package plan9 contains an interface to the low-level operating system primitives.
unix Package unix contains an interface to the low-level operating system primitives.
linux
windows Package windows contains an interface to the low-level operating system primitives.
mkwinsyscall mkwinsyscall generates windows system call bodies
registry Package registry provides access to the Windows registry.
svc Package svc provides everything required to build Windows service.
debug Package debug provides facilities to execute svc.Handler on console.
eventlog Package eventlog implements access to Windows event log.
example Example service program that beeps.
mgr Package mgr can be used to manage Windows service programs.
term Package term provides support functions for dealing with terminals, as commonly found on UNIX systems.
text text is a repository of text-related packages related to internationalization (i18n) and localization (l10n), such as character encodings, text transformations, and locale-specific text handling.
cases Package cases provides general and language-specific case mappers.
cmd
gotext gotext is a tool for managing text in Go source code.
examples
extract
extract_http
pkg
rewrite
collate Package collate contains types for comparing and sorting Unicode strings according to a given collation order.
build
tools
colcmp
currency Package currency contains currency-related functionality.
date
encoding Package encoding defines an interface for character encodings, such as Shift JIS and Windows 1252, that can convert to and from UTF-8.
charmap Package charmap provides simple character encodings such as IBM Code Page 437 and Windows 1252.
htmlindex Package htmlindex maps character set encoding names to Encodings as recommended by the W3C for use in HTML 5.
ianaindex Package ianaindex maps names to Encodings as specified by the IANA registry.
japanese Package japanese provides Japanese encodings such as EUC-JP and Shift JIS.
korean Package korean provides Korean encodings such as EUC-KR.
simplifiedchinese Package simplifiedchinese provides Simplified Chinese encodings such as GBK.
traditionalchinese Package traditionalchinese provides Traditional Chinese encodings such as Big5.
unicode Package unicode provides Unicode encodings such as UTF-16.
utf32 Package utf32 provides the UTF-32 Unicode encoding.
feature
plural Package plural provides utilities for handling linguistic plurals in text.
language Package language implements BCP 47 language tags and related functionality.
display Package display provides display names for languages, scripts and regions in a requested language.
message Package message implements formatted I/O for localized strings with functions analogous to the fmt's print functions.
catalog Package catalog defines collections of translated format strings.
pipeline Package pipeline provides tools for creating translation pipelines.
number Package number formats numbers according to the customs of different locales.
runes Package runes provide transforms for UTF-8 encoded text.
search Package search provides language-specific search and string matching.
secure secure is a repository of text security related packages.
bidirule Package bidirule implements the Bidi Rule defined by RFC 5893.
precis Package precis contains types and functions for the preparation, enforcement, and comparison of internationalized strings ("PRECIS") as defined in RFC 8264.
transform Package transform provides reader and writer wrappers that transform the bytes passing through as well as various transformations.
unicode unicode holds packages with implementations of Unicode standards that are mostly used as building blocks for other packages in golang.org/x/text, layout engines, or are otherwise more low-level in nature.
bidi Package bidi contains functionality for bidirectional text support.
cldr Package cldr provides a parser for LDML and related XML formats.
norm Package norm contains types and functions for normalizing Unicode strings.
rangetable Package rangetable provides utilities for creating and inspecting unicode.RangeTables.
runenames Package runenames provides rune names from the Unicode Character Database.
width Package width provides functionality for handling different widths in text.
google.golang.org
protobuf
cmd
protoc-gen-go The protoc-gen-go binary is a protoc plugin to generate Go code for both proto2 and proto3 versions of the protocol buffer language.
internal_gengo Package internal_gengo is internal to the protobuf module.
compiler
protogen Package protogen provides support for writing protoc plugins.
encoding
protodelim Package protodelim marshals and unmarshals varint size-delimited messages.
protojson Package protojson marshals and unmarshals protocol buffer messages as JSON format.
prototext Package prototext marshals and unmarshals protocol buffer messages as the textproto format.
protowire Package protowire parses and formats the raw wire encoding.
proto Package proto provides functions operating on protocol buffer messages.
protoadapt Package protoadapt bridges the original and new proto APIs.
reflect
protodesc Package protodesc provides functionality for converting FileDescriptorProto messages to/from [protoreflect.FileDescriptor] values.
protopath Package protopath provides functionality for representing a sequence of protobuf reflection operations on a message.
protorange Package protorange provides functionality to traverse a message value.
protoreflect Package protoreflect provides interfaces to dynamically manipulate messages.
protoregistry Package protoregistry provides data structures to register and lookup protobuf descriptor types.
runtime
protoiface Package protoiface contains types referenced or implemented by messages.
protoimpl Package protoimpl contains the default implementation for messages generated by protoc-gen-go.
testing
protocmp Package protocmp provides protobuf specific options for the github.com/google/go-cmp/cmp package.
protopack Package protopack enables manual encoding and decoding of protobuf wire data.
prototest Package prototest exercises protobuf reflection.
types
descriptorpb
dynamicpb Package dynamicpb creates protocol buffer messages using runtime type information.
known
anypb Package anypb contains generated types for google/protobuf/any.proto.
apipb
durationpb Package durationpb contains generated types for google/protobuf/duration.proto.
emptypb
fieldmaskpb Package fieldmaskpb contains generated types for google/protobuf/field_mask.proto.
sourcecontextpb
structpb Package structpb contains generated types for google/protobuf/struct.proto.
timestamppb Package timestamppb contains generated types for google/protobuf/timestamp.proto.
typepb
wrapperspb
pluginpb
gopkg.in
alexcesaro
quotedprintable.v3 Package quotedprintable implements quoted-printable encoding as specified by RFC 2045.
yaml.v3 Package yaml implements YAML support for the Go language.

Other packages

Sub-repositories

These packages are part of the Go Project but outside the main Go tree. They are developed under looser compatibility requirements than the Go core. Install them with "go get".

Community

These services can help you find Open Source packages provided by the community.