Refactoring aws
Package AWS:
- groups: add new function walk to list and call custom function on each found group
- role: add new function walk to list and call custom function on each found role
- role: add new function to detach all attached policy linked on each found role
- user: add new function walk to list and call custom function on each found user
- user: add new function to detach all attached policy linked on each found user
- policy: add new function walk to list and call custom function on each found policy
- policy: add new function to retrieve all ARN policy who's matching given prefix of not empty
- add sub package randRead to allow expose random reader from remote
source like http request
- add unit test for randReader
Other:
- bump x/crypto from indirect to direct
- add capabilities to create semaphore with more weighted thant physical thread
- to limit thread to physical thread use SetSimultaneous function
- add capabilites to use unlimited sync process (waitgroup)
- update process following
- add subpackage to create good semaphore/waitgroup instance
- replace file progress to generic interface extended from io reader / writer with progress function
- replace download function who's make the io copy, to a function that return the size + io.readCloser stream
Package ioutils/ioprogress:
- add a package to expose a generic interface based on io readcloser / writecloser
- add a instance to create a io readcloser / writecloser with progress function
- new instance based only on io readcloser/ writecloser and allow to register progress function or not if not wanted
Other:
- bump dependencies
- adjust format licence for context/gin
Package Archive:
- complete rework of package
- split package between compression (stream compression only) and
archive (catalogue/dictionary/tape archive type)
- rework compression to be stream only working without any temporary
file or any like
- rework archive like TAR, ZIP... to expose stream instead of writing
directly file/path
- rework archive like TAR, ZIP... to allow adding file from stream only
and allowing to parsing local path to add it into archive
- rework detection of compression / archive
- rework extractAll function to not using useless local temporary file
- adding test can be used as example and perform testing of most of
package code
- using const custom type for compression and archive allow them to be
parsed, marshalled or unmarshalled from text or json and more
- apply following change into other module that use it
- component/request: fix IsStarted function
- component/head: replace mutex to atomic
Package LDAP:
- fix bug if ldapPort for TLS is not set
- fix bug if ldapPort for StartTLS or noTLS is not set
Update / Fix - 2024-03
Package Config/component/LDAP:
- replace mutex by atomic
- fix minor bugs & optimize code
Package Size:
- add function 'mul' allowing do a multiplaction on the size value by a float64 given value (could use another size.float64)
- add function 'div' allowing do a division of the size value by a float64 given value (could use another size.float64)
- add function 'add' allowing do an addtion of the size value with a uint64 given value (could use another size.uint64)
- add function 'sub' allowing do an substraction of the size value with a uint64 given value (could use another size.uint64)
Package Encoding:
- rework completly crypt package to new package encoding
- part aes of old crypt become new subpackage encoding/aes
- part hex of old crypt (associated with aes) become new standalone subpackage encoding/hexa
- adding new subpackage mux to use multiplexer/de-multiplexer of io stream
- mux is different of multireader / multiwriter in way as io send from mux in one channel will be received only in the coresponding channel of de-mux
- mux is encoding subpackage becauxse based on hex + cbor marshalling / unmarshalling
- all subpackage can be used directly of by io reader / writer
Package Socket/server
- rework server to use as possible direct io to con
- rework server to optimize & fix managment (context / shutdown...)
- rework server to stop connection befor stopping server
- rework server to not load incoming and send it to handler by allowing handler to manager io input/output directly
- server not more used buff internally (less memory consuption)
- adding counter of opened connection
- adding some testing who's checking server & client for each protocol
Package Socket/client
- rework client to allow connect to server before reading/writing on io stream
- rework client to allow consum direct io stream instead of reading locally / call function
- rework client to allow having less memory consumption by removing internal buffer
- rework client allowing to use root io function (bufio, io copy, ...)
Package Socket/multi
- adding new subpackage multi to simplfy using of 1 reader / x writer
- if no writer is define, using an extended io discard
- allowing asynch instancing, populate writer and calling main writer
- allowing calling writer / reader to expose the main io reader / writer
Package Socket/delim:
- adding new subpackage delim to simplify using of bufio reader with delimiter
- using 1 writer / 1 reader
- allowing root io function like readwritecloser, writeto, ...
- use local buffer to prevent race if reader and writer are not is same process
Package PProf:
- fix missing \n in message
Package HttpServer:
- fix bug with init TLS & http2
Other:
- bump dependencies
- replace mutex by atomic
- fix minor bugs & optimize code
Package Size:
- add function 'mul' allowing do a multiplaction on the size value by a float64 given value (could use another size.float64)
- add function 'div' allowing do a division of the size value by a float64 given value (could use another size.float64)
- add function 'add' allowing do an addtion of the size value with a uint64 given value (could use another size.uint64)
- add function 'sub' allowing do an substraction of the size value with a uint64 given value (could use another size.uint64)
Package Encoding:
- rework completly crypt package to new package encoding
- part aes of old crypt become new subpackage encoding/aes
- part hex of old crypt (associated with aes) become new standalone subpackage encoding/hexa
- adding new subpackage mux to use multiplexer/de-multiplexer of io stream
- mux is different of multireader / multiwriter in way as io send from mux in one channel will be received only in the coresponding channel of de-mux
- mux is encoding subpackage becauxse based on hex + cbor marshalling / unmarshalling
- all subpackage can be used directly of by io reader / writer
Package Socket/server
- rework server to use as possible direct io to con
- rework server to optimize & fix managment (context / shutdown...)
- rework server to stop connection befor stopping server
- rework server to not load incoming and send it to handler by allowing handler to manager io input/output directly
- server not more used buff internally (less memory consuption)
- adding counter of opened connection
- adding some testing who's checking server & client for each protocol
Package Socket/client
- rework client to allow connect to server before reading/writing on io stream
- rework client to allow consum direct io stream instead of reading locally / call function
- rework client to allow having less memory consumption by removing internal buffer
- rework client allowing to use root io function (bufio, io copy, ...)
Package Socket/multi
- adding new subpackage multi to simplfy using of 1 reader / x writer
- if no writer is define, using an extended io discard
- allowing asynch instancing, populate writer and calling main writer
- allowing calling writer / reader to expose the main io reader / writer
Package Socket/delim:
- adding new subpackage delim to simplify using of bufio reader with delimiter
- using 1 writer / 1 reader
- allowing root io function like readwritecloser, writeto, ...
- use local buffer to prevent race if reader and writer are not is same process
Package PProf:
- fix missing \n in message
Package HttpServer:
- fix bug with init TLS & http2
Other:
- bump dependencies
- Client: optimize code & memory
- Client: allow multiple send content for one connection
- Server: optmize code
- Server: optimize memory use & stream
Package server:
- Rework chan / cancel process
- Simplify & optimize chan / cancel process
- Add Function Action for Ticker as FuncTicker
- Rename type func Action to FuncAction
Package httpserver:
- Fix error on starting runner
- Log error on starting runner
- Optimize some code
Package config:
- Add log info for each starting / reloading component (if default logger is set)
- Add log error for starting error or not started for each component on start / reload (if default logger is set)
Package monitor:
- review ticker delay for starting puller (pass from 500ms to 50ms)
Other:
- bump dependencies
- new package to use/consume CPU / MEM pprof root package
- create a file on same location as runable binary to store profile
Package HTTPClient
- add message function called on each Dial/DialContext call function
- function message can be nil
Package Server
- add generic function for recover message / catching
- implement this recovring function into runner StartStop & Ticker
Package Logger:
- implement generic recovering function into hook
- fix bug if instance is an invalid instance of fields or entry
- Add DNS Mapper to force destination for a fqdn source
- Allow wildcard and multi wildcard for fqdn source
- DNS Mapper create Transport, Dialer & http client
- DNS Mapper allow a config input to customize timeout, limit and TLS config
- DNS Mapper use a gloabl transport connection poller
- DNS Mapper implement DialContext & Dial method for transport
- DNS Mapper use cache to accelerate process
- DNS Mapper cache is only dnsmapper, not DNS cache
- Replace old helper for http client with DNSMapper
- Add default DNSMapper into the main lib of http client
- Allow to overide the default DNS Mapper with a new one
- Add ticker to force clean idle connection every given duration
- "Compatible" with old config, as the default config will be used instead of old client build
- Clean code and fix minor bugs
- Add config component to allow use a global config
- Config Component httpcli can overide default httpcli dns mapper when updated
Package Certificates
- Add function type to impose function that return a slice of rootCA string
- update config/component/tls by replacing mutex with atomic
- optimize some code
Package Config
- expand errors code index to add component httpcli
Package Config/component:
- database: add new validation, that config key existing into viper
- head: add new validation, that config key existing into viper
- http: add new validation, that config key existing into viper
- ldap: add new validation, that config key existing into viper
- log: add new validation, that config key existing into viper
- mail: add new validation, that config key existing into viper
- smtp: add new validation, that config key existing into viper
Package AWS:
- update package following update of httpcli
- use interface for http cli that implement the Do function
- update following the config/component/aws
- rework config/component/aws to use atomic instead of mutex
- update test unit following change
Package Request:
- update following http client update
- use interface of HTTP Client that implement DO function, instead of http client struct pointer
- update config & code following
- apply same modification into config/component/request
- update config/component/request by replacing mutex to atomic
Package Server
- add function Uptime to model to expose the duration since last start
Package Semaphore
- apply change name of constant following bump of lib associated
Package Crypt
- fix bug into reader to remove suffix of EOF if prevent
Package Errors:
- expand index module to add DNS Mapper client
Package HTTP Server:
- update monitor to apply changes
Package Socket:
- add additional check if reading error: if buffer has data, send it to handler before break run
Other:
- bump dependencies
- fix UDP as kernel SOCKGRAM
- add unixgram as kernel SOCKGRAM for local socket file
- optimize parallel statment
- optimize code / minor bugs fix
- add IsRunning function
- add timeout shutdown based on periodicly check of IsRunning
- fix close channel before send empty struct to stop process
- optimize clean shutdown
- optimize connection process to use less resources and lock pipeline less time
- add content length header helper function
- add control with length of result marshall body with function jsonbody
- add set content length header in function jsonbody
- fix tcp,udp,unix socket
- add socket unixgram for session less unix socket
- optmize process & code
- add some standalone test for server / client (add example server config for
rsyslog)
Package Network/Protocol:
- add unixgram protocol
Package Errors:
- fix bug in loop to prevent circular include
- fix bug with fmt.Errorf called withtou pattern, replace it by a errors.New
- fix but of circular inclusion for method Add
- remove deprecated const / code
- reorganize code file to map to interface / model
- update other modules following chnages
Other:
- bump dependencies
- Add Getxxxx function from viper into interface to prevent using lib viper and spf viper instance
Package Config:
- change pointer to retrieve config: using golib viper instead of spf viper (allow hook instead of no hook)
- Add option to define the buffer size for logger file
- Rework Hashicorp wrapper to not use a standalone pointer of logger and prefer a function to retrieve the logger
- reword some panic recovery message
- add function to check current TLSMode
Package Logger:
- fix recovering message to identify origin
- fix error on freebuffer function
Package Server:
- fix recovering message to identify origin
Other:
- bump dependencies
Fix 2023-11-21
Package Archives:
- fix security arbitrary path
- fix linter
- fix issue #171
- fix issue #172
Package AWS:
- implement resolver v2
- force default bucket region constraint to prevent SDK error
Package Cobra:
- fix linter
Package Config/component:
- fix linter
Package Context/Config:
- Add function to set context
Package Database/KV...:
- Fix error
- Fix collision pointer
- Fix models
- Fix circular dependencies
- Add function Delete on driver, table and item
- Add function new on drvier to prevent collision data when create item on table get / walk
Package Duration:
- Add type Duration based on time.Duration to allow transform duration to string instead of int64 nanosecond
- Add function to parse in json, yaml, toml, text, cbor
- Add function to allow convert type into mapstructure (spf13 viper, cobra...)
Package File/Perm:
- Add type Perm based on os.FileMode to allow marshall / unmashall it into octal form instead of string representation (-rwxrwxrwx)
- Add function to marshall / unmarshall in json, yaml, toml, text, cbor
- Add function to allow convert type into mapstructure (spf13 viper, cobra...)
Package File/progress:
- Fix linter
Package HTTPServer :
- Fix linter
- Fix security by adding a default value if not set on config
Package ioutils:
- Fix Linter
Package LDAP:
- Add Clone function
- Fix linter
Package logger/hookfile:
- Fix linter
Package nats:
- Fix linter
Package Network/Protocol:
- Fix bug with quote / Dbl Quote on unmarshall
Package Password:
- Replace password with crypto rand instead of math rand
Package Size:
- Fix potential overflow
- Add function to format value into Int32, Int, Uint32, Uint, Float32
- Add function to parse Float64 into type Size
Package Socket:
- change config uint32 to golib Size, time.Duration to golib Duration
- add TLS managment to server TCP, discard for UDP & Unix file Local Domain
- add function Info Server to print information of server when listen is starting
Other:
- bump dependencies
- fix CVE-2023-46129
- fix security arbitrary path
- fix linter
Package AWS:
- implement resolver v2
Package Cobra:
- fix linter
Package Config/component:
- fix linter
Package Context/Config:
- Add function to set context
Package Database/KV...:
- Fix error
- Fix collision pointer
- Fix models
- Fix circular dependencies
- Add function Delete on driver, table and item
- Add function new on drvier to prevent collision data when create item on table get / walk
Package Duration:
- Add type Duration based on time.Duration to allow transform duration to string instead of int64 nanosecond
- Add function to parse in json, yaml, toml, text, cbor
- Add function to allow convert type into mapstructure (spf13 viper, cobra...)
Package File/Perm:
- Add type Perm based on os.FileMode to allow marshall / unmashall it into octal form instead of string representation (-rwxrwxrwx)
- Add function to marshall / unmarshall in json, yaml, toml, text, cbor
- Add function to allow convert type into mapstructure (spf13 viper, cobra...)
Package File/progress:
- Fix linter
Package HTTPServer :
- Fix linter
- Fix security by adding a default value if not set on config
Package ioutils:
- Fix Linter
Package LDAP:
- Add Clone function
Package logger/hookfile:
- Fix linter
Package nats:
- Fix linter
Package Network/Protocol:
- Fix bug with quote / Dbl Quote on unmarshall
Package Password:
- Replace password with crypto rand instead of math rand
Package Size:
- Fix potential overflow
- Add function to format value into Int32, Int, Uint32, Uint, Float32
- Add function to parse Float64 into type Size
Package Socket:
- change config uint32 to golib Size, time.Duration to golib Duration
- add TLS managment to server TCP, discard for UDP & Unix file Local Domain
- add function Info Server to print information of server when listen is starting
Package Archive/GZIP
- remove call of getGunzipSize
- expose to public the internal getGunZipSize => GetGunZipSize
Package file/progress
- fix nil function with progress, use empty function if function are nil
Rework Semaphore & Progress
Package Semaphore
- simplify the base semaphore (context, max wheight...)
- merge semaphore with progress instance
- extend semaphore with context interface
Package Progress
- rework MPB instance
- bump MBP to v8
- integrate MPB into Semaphore to use a same instance for sem / mpb
- rework bar to simplify it
- bar is now also a semaphore & context
- allow to create bar with custom options
Package Semaphore:
- simplify the base semaphore (context, max wheight...)
- merge semaphore with progress instance
- extend semaphore with context interface
Package Progress
- rework MPB instance
- bump MBP to v8
- integrate MPB into Semaphore to use a same instance for sem / mpb
- rework bar to simplify it
- bar is now also a semaphore & context
- allow to create bar with custom options
Add feature to change http timeout directly in httpcli store in aws client
Add copy/MPUCopy function
Update mpu to allow copy with MPU
Package Cobra
Fix println by fmt.Fprint to os.stdout
Package Crypt
Refactor package to use instance of crypt instead of a global crypt unique instance
Allow to gen key/nonce
Add io stream reader/writer instead of only buffer slice encoder decoder
Package file/bandwidth
Add new subpackage bandwith to limit a amount of byte read/write for a duraction
Use file/progress function increment/reset
Allow to add custom function increment / reset
Package IOUtils
Remove useless file error.go, tempFile.go (replaced by package file)
Move fileDescriptor to a subpackage fileDescriptor: allow to change nb of FD for linux/windows os
Move Buffer ReadCloser to a new subpackage: allow to add close function to buffer, and expose read / write io interface
Add sub package multiplexer to allow send/receive multiple io stream into on io stream
Package Socket
Rework to expose io stream instead of buffer
Fix minor bugs
Other:
Bump dependencies
Update code following bump dependencies
Package aws
- fix dive, use it only for slice
- add function to version delete with bypass governance policy
Package cluster
- fix dive, use it only for slice
Package config
- fix missing close channel for waitnotify function
Package errors
- fix pattern %s with uint16
Package ioutils
- fix liberr / Error type return
Package nats
- fix dive, use it only for slice
Package nutsdb
- fix dive, use it only for slice
Package request
- fix dive, use it only for slice
Other
- bump dependencies (validator v10.15.2)
Rework Error interface
Package Errors:
- add function to check & cast error interface into golib Error interface
- update CodeError type to simplify management & error creation
- add function to simplify call of Error function from a generic error interface
- remove some useless function from Error interface
All Other Packages:
- apply change of package Errors into all other packages
Package Errors:
- add function to check & cast error interface into golib Error interface
- update CodeError type to simplify management & error creation
- add function to simplify call of Error function from a generic error interface
- remove some useless function from Error interface
All Other Packages:
- apply change of package Errors into all other packages