gotools

module
v0.0.0-...-bb1a4e7 Latest Latest
Warning

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

Go to latest
Published: May 9, 2020 License: GPL-3.0

README

gotools logo

gotools

High Performance Computing Go

Covergage Build Status Go Report Card Software License Go Docs

Install

Package gotools is a set of multipurpose libraries modified for High Performance Computing in Go

Install

go get github.com/zerjioang/gotools

Features

Following a list of implemented features are described

Feature Description
IsIpv4 Ipv4 string address validator
Ip2intLow Converts given IP address string to its numeric representation
IpToIntAssemblyAmd64 Converts given IP address string to its numeric representation using amd64 Go assembly code

Other Libraries

Development

Inline anaylsis

go test ./... -gcflags="-m=2" 2>&1 | grep "too complex"

Bound check analysis

go test ./... -gcflags="-d=ssa/check_bce/debug=1" 

You can do an early bounds check deep into the slice to avoid multiple bounds checks further on. If that won't work:

  • propagate constants
  • unroll loops
  • reuse previously allocated vars

This can make the code super ugly! a dozen lines becomes a few hundred. but... 80% throughput boost!

Contributing

Everybody is welcome to contribute to gotools. And any other comments will be very appreciate.

License

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Uses GPL license described below

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Directories

Path Synopsis
lib
arena
Package arena provides a 100% golang slab allocator for byte slices.
Package arena provides a 100% golang slab allocator for byte slices.
atomicvar
Package atomicvar provides atomic Boolean type for cleaner code and better performance.
Package atomicvar provides atomic Boolean type for cleaner code and better performance.
bip39
Package bip39 is the Golang implementation of the BIP39 spec.
Package bip39 is the Golang implementation of the BIP39 spec.
cgo
crypto/bn256
Package bn256 implements a particular bilinear group.
Package bn256 implements a particular bilinear group.
crypto/fourq
Package fourq implements FourQ, a high-speed elliptic curve at the 128-bit security level.
Package fourq implements FourQ, a high-speed elliptic curve at the 128-bit security level.
crypto/schnorr/generic
It is a digital signature scheme known for its simplicity, among the first whose security is based on the intractability of certain discrete logarithm problems.It is efficient and generates short signatures.
It is a digital signature scheme known for its simplicity, among the first whose security is based on the intractability of certain discrete logarithm problems.It is efficient and generates short signatures.
decimal
Multiprecision decimal numbers.
Multiprecision decimal numbers.
encoding/base62
Package base62 implements base62 encoding
Package base62 implements base62 encoding
encoding/base64
Package base64 implements base64 encoding as specified by RFC 4648.
Package base64 implements base64 encoding as specified by RFC 4648.
eth
eth/fixtures
Package hexutil implements hex encoding with 0x prefix.
Package hexutil implements hex encoding with 0x prefix.
eth/fixtures/abi
Package abi implements the Ethereum ABI (Application Binary Interface).
Package abi implements the Ethereum ABI (Application Binary Interface).
eth/fixtures/common
Package common contains various helper functions.
Package common contains various helper functions.
eth/fixtures/common/math
Package math provides integer math utilities.
Package math provides integer math utilities.
eth/fixtures/crypto/bn256
Package bn256 implements the Optimal Ate pairing over a 256-bit Barreto-Naehrig curve.
Package bn256 implements the Optimal Ate pairing over a 256-bit Barreto-Naehrig curve.
eth/fixtures/crypto/bn256/cloudflare
Package bn256 implements a particular bilinear group at the 128-bit security level.
Package bn256 implements a particular bilinear group at the 128-bit security level.
eth/fixtures/crypto/bn256/google
Package bn256 implements a particular bilinear group.
Package bn256 implements a particular bilinear group.
eth/fixtures/crypto/secp256k1
Package secp256k1 wraps the bitcoin secp256k1 C library.
Package secp256k1 wraps the bitcoin secp256k1 C library.
fastrand
Package fastrand implements fast pesudorandom number generator that should scale well on multi-CPU systems.
Package fastrand implements fast pesudorandom number generator that should scale well on multi-CPU systems.
fastrand2
Package fastrand implements a cryptographically secure pseudorandom number generator.
Package fastrand implements a cryptographically secure pseudorandom number generator.
fs
hash/highwayhash
Package highwayhash implements the pseudo-random-function (PRF) HighwayHash.
Package highwayhash implements the pseudo-random-function (PRF) HighwayHash.
http/server/cpu
Package cpu implements processor feature detection used by the Go standard library.
Package cpu implements processor feature detection used by the Go standard library.
intern
Package intern is a string interning library.
Package intern is a string interning library.
monotonic
Package monotime provides a fast monotonic clock source.
Package monotime provides a fast monotonic clock source.
multihash/md2
Package md2 implements the MD2 hash algorithm as defined in RFC 1319.
Package md2 implements the MD2 hash algorithm as defined in RFC 1319.
ql
sec
snowflake
Package snowflake provides a very simple Twitter snowflake generator and parser.
Package snowflake provides a very simple Twitter snowflake generator and parser.
stringbank
Package stringbank allows you to hold large numbers of strings without bothering the garbage collector.
Package stringbank allows you to hold large numbers of strings without bothering the garbage collector.
template
Package fasttemplate implements simple and fast template library.
Package fasttemplate implements simple and fast template library.
tor
vnat
Package vnat is used to create virtual computer networks.
Package vnat is used to create virtual computer networks.
wsm
shared
db
thirdparty
echo
Package echo implements high performance, minimalist Go web framework.
Package echo implements high performance, minimalist Go web framework.
jwt-go
Package jwt is a Go implementation of JSON Web Tokens: http://self-issued.info/docs/draft-jones-json-web-token.html See README.md for more info.
Package jwt is a Go implementation of JSON Web Tokens: http://self-issued.info/docs/draft-jones-json-web-token.html See README.md for more info.
asm
hex
ip
net/ping
Package ping is an ICMP ping library seeking to emulate the unix "ping" command.
Package ping is an ICMP ping library seeking to emulate the unix "ping" command.
str

Jump to

Keyboard shortcuts

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