core

package module
v1.2.1 Latest Latest
Warning

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

Go to latest
Published: May 29, 2020 License: MIT Imports: 25 Imported by: 0

README

gocore

Go core utils
Last Version: v1.2.1

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

Constants

This section is empty.

Variables

This section is empty.

Functions

func AtomicAdd

func AtomicAdd(sum *uint64, delta uint64) uint64

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |structs| Инкрементальный счётчик для многопоточных задач

func Base64

func Base64(input []byte) string

Encode bytes to base64 encoded string

func Base64Decode

func Base64Decode(input string) ([]byte, error)

Decode base64 encoded string back to []byte array

func Basename

func Basename(path string) string

Возвращает имя файла

func Bin2hex

func Bin2hex(input []byte) string

Encode bytes to hex encoded string @help: https://golang.org/pkg/encoding/hex/#EncodeToString

func Cl

func Cl(v ...interface{})

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |helpers| Вывод значения в консоль во внутреннем формате Go

func Date

func Date(format string, uts ...int32) string

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |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 DirCreate

func DirCreate(dir string) bool

Возвращает рабочую директорию приложения

func Empty

func Empty(v interface{}) bool

Проверка значения на пустую строку, false, 0 или nil

func FileAppend

func FileAppend(filename string, data []byte) bool

Запись файла | os.FileMode = 0644 @example: FileAppend("app.log", []byte("Test test test"))

func FileClose

func FileClose(file *os.File) bool

Закрытие ранее открытого через os.OpenFile() файла

func FileDelete

func FileDelete(filename string) error

Удаление файла

func FileExists

func FileExists(filename string) bool

Проверка наличия файла @help: https://stackoverflow.com/questions/12518876/how-to-check-if-a-file-exists-in-go

func FileInfo

func FileInfo(filename string) (os.FileInfo, error)

Получение информации о файле

func FileOpenForAppend

func FileOpenForAppend(filePath string) (*os.File, error)

Открытие файла для дозаписи

func FileRead

func FileRead(filename string) []byte

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |io.file| Чтение файла

func FileSave

func FileSave(filename string, data []byte) bool

Запись файла | os.FileMode = 0644 @todo: сначала надо писать в filename.tmp файл, после чего если места на диске хватило переименовывать его в filename

func GetCwd

func GetCwd() string

Возвращает рабочую директорию приложения

func GetIpv4

func GetIpv4() (ip net.IP)

Получение рабочего 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

func Glob(pattern string) (matches []string, err error)

Получение списка файлов в папке по маске @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

func GzFile(filePath string) error

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Сжатие указанного файла @help: https://www.dotnetperls.com/compress-go

func Hex2bin

func Hex2bin(input string) ([]byte, error)

Encode hex encoded string to []byte @help: https://golang.org/pkg/encoding/hex/#DecodeString

func Hs

func Hs(v string) string

Экранирование спецсимволов HTML @help: https://golang.org/pkg/html/#example_EscapeString var htmlReplacer = strings.NewReplacer(

"&", "&",
"<", "&lt;",
">", "&gt;",
"&#34;" is shorter than "&quot;".
`"`, "&#34;",
"&#39;" is shorter than "&apos;" and apos was not in HTML until HTML5.
"'", "&#39;",

)

func IP2Long

func IP2Long(v string) int64

Преобразование IP адреса в число @help: https://github.com/go-libs/iputils/blob/master/iputils.go

func Int2str

func Int2str(v int64) string

Преобразование числа в строку @help: https://golang.org/pkg/strconv/

func IsSet

func IsSet(arr interface{}, index int) bool

Проверка наличия элемента в массиве

func Join

func Join(v []string, delimiter string) string

Вытянуть массив строк в одну строку с разделителем @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 Long2IP

func Long2IP(v uint32) string

Преобразование числа в IP адрес

func Md5

func Md5(input []byte) string

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |fn| Encode bytes to sha1 hex-encoded string

func NetConnClose

func NetConnClose(c net.Conn) bool

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |net| Закрытие соединения net.Conn, открытого с помощью net.Dial() и тп

func Out

func Out(format string, v ...interface{})

Вывод значения в консоль

func Rand

func Rand(min, max int64) int64

Random from min to max

func RandInt64

func RandInt64() int64

Random

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

func RunEvery(ms int64, function func()) chan bool

Запуск функции каждые seconds сек в отдельном потоке!: go runEvery() Tick неуправляем - его невозможно остановить, управление через внешний done <- true @help: https://golang.org/pkg/time/#NewTicker

func Sha1

func Sha1(input []byte) string

Encode bytes to sha1 hex-encoded string

func Sha256

func Sha256(input []byte) string

Encode bytes to sha256 hex-encoded string

func Sha512

func Sha512(input []byte) string

Encode bytes to sha512 hex-encoded string

func Sleep

func Sleep(ms int64)

Sleep в течение ms милисекунд

func Sprintf

func Sprintf(format string, v ...interface{}) string

Форматирование строки

func Str2Lower

func Str2Lower(s string) string

Преобразование текста в нижний регистр

func Str2Upper

func Str2Upper(s string) string

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |strings| Преобразование текста в ВЕРХНИЙ регистр

func Str2int

func Str2int(v string) int64

Преобразование строки в число @help: https://golang.org/pkg/strconv/

func Trim

func Trim(v string) string

Очистка пробелов в начале и конце строки @help: https://golang.org/pkg/strings/#TrimSpace

func Ts

func Ts() int32

Получение Unix timestamp

func Typeof

func Typeof(v interface{}) string

Проверка типа переменной

func Uint2str

func Uint2str(v uint64) string

Преобразование числа в строку @help: https://golang.org/pkg/strconv/

func UrlDecode

func UrlDecode(input string) ([]byte, error)

Decode URL-encoded string back to []byte array

func UrlEncode

func UrlEncode(input []byte) string

Encode bytes to URL-encoded string

func Ve

func Ve(v ...interface{}) string

Возврат читаемого значения полученной переменной

func Zerofill

func Zerofill(v int, zeros int, total int) string

Заполнение ведущими нолями

Types

type AtomicCounter

type AtomicCounter struct {
	// contains filtered or unexported fields
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |counter| Atomic counter struct

func (*AtomicCounter) Get

func (c *AtomicCounter) Get() uint64

Returns counter value

func (*AtomicCounter) Inc

func (c *AtomicCounter) Inc()

Increments counter value

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

func NewLogger(name, LogDir string) *Logger

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |functions| Создание нового экземпляра Logger{}

func (*Logger) Add added in v1.2.0

func (lgr *Logger) Add(log string)

Запись 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) Close added in v1.2.0

func (lgr *Logger) Close()

Закрытие логера

func (*Logger) Gz added in v1.2.0

func (lgr *Logger) Gz()

Компрессия старых лог-файлов

func (*Logger) Rotate added in v1.2.0

func (lgr *Logger) Rotate()

Запускает ротацию лога, раз в секунду запуская *Logger.Rotate()

func (*Logger) Write added in v1.2.0

func (lgr *Logger) Write(log string, console bool)

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |methods| Запись в логфайл

func (*Logger) WriteCacheToDisk added in v1.2.0

func (lgr *Logger) WriteCacheToDisk()

Сброс кэша из памяти на диск

Jump to

Keyboard shortcuts

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