Documentation ¶
Overview ¶
App Core functions and vars | Compression functions
App Core functions and vars | Core functions @help: in_array: https://github.com/SimonWaldherr/golang-examples/blob/master/advanced/in_array.go
App Core functions and vars ¶
Application encryption functions @help: GOST https://github.com/martinlindhe/gogost/tree/master/gost3412
App Core functions and vars ¶
App data Types | App Logger{} struct
App Core functions and vars | Math @help: fmt.Printf("LeadingZeros64(%064b) = %d\n", 1, bits.LeadingZeros64(1)) https://golang.org/pkg/math/bits/#LeadingZeros64
App Core functions and vars ¶
App Core functions and vars ¶
App Core functions and vars
Index ¶
- func AtomicAdd(sum *uint64, delta uint64) uint64
- func Base64(input []byte) string
- func Base64Decode(input string) ([]byte, error)
- func Basename(path string) string
- func Bin2hex(input []byte) string
- func Cl(v ...interface{})
- func Date(format string, uts ...int32) string
- func DeJson(s string) interface{}
- func DirCreate(dir string) bool
- func Empty(v interface{}) bool
- func FileAppend(filename string, data []byte) bool
- func FileClose(file *os.File) bool
- func FileDelete(filename string) error
- func FileExists(filename string) bool
- func FileInfo(filename string) (os.FileInfo, error)
- func FileOpenForAppend(filePath string) (*os.File, error)
- func FileRead(filename string) []byte
- func FileSave(filename string, data []byte) bool
- func GetCwd() string
- func GetIpv4() (ip net.IP)
- func Glob(pattern string) (matches []string, err error)
- func GoStop()
- func GzFile(filePath string) error
- func Hex2bin(input string) ([]byte, error)
- func Hs(v string) string
- func IP2Long(v string) int64
- func Int2str(v int64) string
- func IsSet(arr interface{}, index int) bool
- func Join(v []string, delimiter string) string
- func Json(data interface{}) string
- func LogDatePrefix() string
- func Long2IP(v uint32) string
- func Md5(input []byte) string
- func NetConnClose(c net.Conn) bool
- func Out(format string, v ...interface{})
- func Rand(min, max int64) int64
- func RandInt64() int64
- func Recover()
- func RunAfter(ms int64, f func())
- func RunEvery(ms int64, function func()) chan bool
- func Sha1(input []byte) string
- func Sha256(input []byte) string
- func Sha512(input []byte) string
- func Sleep(ms int64)
- func Sprintf(format string, v ...interface{}) string
- func Str2Lower(s string) string
- func Str2Upper(s string) string
- func Str2int(v string) int64
- func Trim(v string) string
- func Ts() int32
- func Typeof(v interface{}) string
- func Uint2str(v uint64) string
- func UrlDecode(input string) ([]byte, error)
- func UrlEncode(input []byte) string
- func Ve(v ...interface{}) string
- func Zerofill(v int, zeros int, total int) string
- type AtomicCounter
- type Logger
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AtomicAdd ¶
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |structs| Инкрементальный счётчик для многопоточных задач
func Base64Decode ¶
Decode base64 encoded string back to []byte array
func Bin2hex ¶
Encode bytes to hex encoded string @help: https://golang.org/pkg/encoding/hex/#EncodeToString
func Cl ¶
func Cl(v ...interface{})
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |helpers| Вывод значения в консоль во внутреннем формате Go
func Date ¶
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |fn| Получение отформатированной даты и времени для вставки в логи и текст @help: https://programming.guide/go/format-parse-string-time-date-example.html @help: time.Now().Format("20060102 15:04:05") @help: date formats - https://www.php.net/manual/ru/function.date.php
func DeJson ¶
func DeJson(s string) interface{}
[+] Распаковка JSON строки @help: https://stackoverflow.com/questions/33436730/unmarshal-json-with-some-known-and-some-unknown-field-names
func FileAppend ¶
Запись файла | os.FileMode = 0644 @example: FileAppend("app.log", []byte("Test test test"))
func FileExists ¶
Проверка наличия файла @help: https://stackoverflow.com/questions/12518876/how-to-check-if-a-file-exists-in-go
func FileOpenForAppend ¶
Открытие файла для дозаписи
func FileRead ¶
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |io.file| Чтение файла
func FileSave ¶
Запись файла | os.FileMode = 0644 @todo: сначала надо писать в filename.tmp файл, после чего если места на диске хватило переименовывать его в filename
func GetIpv4 ¶
Получение рабочего IPv4 адреса хоста @help: https://stackoverflow.com/questions/23558425/how-do-i-get-the-local-ip-address-in-go @help: 193.0.14.129 - k.root-servers.org DNS server in Russia, Moscow (https://www.nic.ru/whois/?searchWord=193.0.14.129 - Country NL)
func Glob ¶
Получение списка файлов в папке по маске @help: https://golang.org/pkg/path/filepath/#Glob
func GoStop ¶
func GoStop()
Goexit terminates the goroutine that calls it. No other goroutine is affected. Goexit runs all deferred calls before terminating the goroutine. Because Goexit is not a panic, any recover calls in those deferred functions will return nil. @help: https://golang.org/pkg/runtime/#Goexit
func GzFile ¶
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Сжатие указанного файла @help: https://www.dotnetperls.com/compress-go
func Hex2bin ¶
Encode hex encoded string to []byte @help: https://golang.org/pkg/encoding/hex/#DecodeString
func Hs ¶
Экранирование спецсимволов HTML @help: https://golang.org/pkg/html/#example_EscapeString var htmlReplacer = strings.NewReplacer(
"&", "&", "<", "<", ">", ">", """ is shorter than """. `"`, """, "'" is shorter than "'" and apos was not in HTML until HTML5. "'", "'",
)
func IP2Long ¶
Преобразование IP адреса в число @help: https://github.com/go-libs/iputils/blob/master/iputils.go
func Int2str ¶
Преобразование числа в строку @help: https://golang.org/pkg/strconv/
func Join ¶
Вытянуть массив строк в одну строку с разделителем @help: https://stackoverflow.com/questions/28799110/how-to-join-a-slice-of-strings-into-a-single-string
func Json ¶
func Json(data interface{}) string
[+] Упаковка в JSON | data map[string]interface{} @help: https://golang.org/pkg/encoding/json/#Marshal @help: https://stackoverflow.com/questions/30105798/go-constructing-struct-json-on-the-fly
func LogDatePrefix ¶ added in v1.2.0
func LogDatePrefix() string
Возвращает префикс с датой для каждой строки логфайла
func Md5 ¶
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |fn| Encode bytes to sha1 hex-encoded string
func NetConnClose ¶
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |net| Закрытие соединения net.Conn, открытого с помощью net.Dial() и тп
func Recover ¶
func Recover()
Функция для замены отлова паник и фэйлов @help: https://golang.org/doc/effective_go.html#recover
func RunAfter ¶
func RunAfter(ms int64, f func())
Запуск функции через seconds сек в отдельном потоке @help: http://golang.org/pkg/time/#AfterFunc @help: https://golang.org/pkg/time/#Timer @ex: go runAfter(1000, func() { out(`runAfter()`) }) defer test.Stop()
func RunEvery ¶
Запуск функции каждые seconds сек в отдельном потоке!: go runEvery() Tick неуправляем - его невозможно остановить, управление через внешний done <- true @help: https://golang.org/pkg/time/#NewTicker
func Str2Upper ¶
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |strings| Преобразование текста в ВЕРХНИЙ регистр
func Str2int ¶
Преобразование строки в число @help: https://golang.org/pkg/strconv/
func Trim ¶
Очистка пробелов в начале и конце строки @help: https://golang.org/pkg/strings/#TrimSpace
func Uint2str ¶
Преобразование числа в строку @help: https://golang.org/pkg/strconv/
Types ¶
type AtomicCounter ¶
type AtomicCounter struct {
// contains filtered or unexported fields
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |counter| Atomic counter struct
type Logger ¶ added in v1.2.0
type Logger struct { File *os.File // открытый лог-файл для записи лога Dir string // директория лог-файла Name string // имя/название лог-файла RPS int // кол-во запросов в секунду Ary []string // кэш для записей Mux sync.Mutex // mutex для стопа конкурентных операций с логами Dbg bool // Флаг вывода отладочной информации Ymd string // Текущая метка ГГГГДДММ (обновляется ежесекундно) }
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |logger| Logger struct
func NewLogger ¶ added in v1.2.0
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |functions| Создание нового экземпляра Logger{}
func (*Logger) Add ¶ added in v1.2.0
Запись HTTP-запросов в лог-файл Адаптировано под Hi-Load, так как частая запись на диск очень сильно тормозит скорость обработки HTTP-запросов
func (*Logger) Check ¶ added in v1.2.0
func (lgr *Logger) Check()
Проверка даты и времени в именах лог-фалов (выполняется каждую 1 сек в отдельном потоке) а также компрессия старых: https://www.dotnetperls.com/compress-go
func (*Logger) Rotate ¶ added in v1.2.0
func (lgr *Logger) Rotate()
Запускает ротацию лога, раз в секунду запуская *Logger.Rotate()
func (*Logger) Write ¶ added in v1.2.0
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |methods| Запись в логфайл
func (*Logger) WriteCacheToDisk ¶ added in v1.2.0
func (lgr *Logger) WriteCacheToDisk()
Сброс кэша из памяти на диск