- FIX: potential CWE-400 with bufio.ReadBytes & bufio.ReadSlices, with
no limited read buffer
- ADD: test to check overflow buffer with discard or error
- REFACTOR: all buffering package, parsing process
- UPDATE: doc, examples, test following changes
- OPTIMIZE: rework code to optimize process
- REWORK: benchmark to check benefice of optimization
- FIX: wording error
Package IOUtils/Multi:
- REWORK: re-design all package to allow sequential/parallel mode
- UPDATE: package with adaptive mode to allow switch automaticly between
sequential and parallel mode following measurment of sample
- OPTIMIZE: code to maximize bandwith and reduce time of write
- UPDATE: documentation, test and comments
- REWORK: testing organization and benchmark aggregation
Package HttpServer:
- FIX: bug with dial addr rewrite for healtcheck & testing PortUse
Package Logger/HookFile:
- FIX: bug with race condition on aggregator counter file
Other:
- Bump dependencies
- FIX: format / import file
[root]
- UPDATE documentation: enhanced README and TESTING guidelines
- UPDATE security md file: fix minimal go version needed
- ADD script: add coverage_report.sh script (see TESTING for info)
[ioutils/aggregator]
- ADD package: add new package to simplify aggregation of multiple write
to a unique writer function
- ADD documentation: add enhanced README and TESTING guidelines
- ADD tests: complete test suites with benchmarks, concurrency, and edge cases
[router]
- UPDATE documentation
[semaphore]
- FIX bug if given context is nil or have error trigger
[shell]
- UPDATE package & sub-package: fix bugs and optimize code
- ADD sub-package tty: allow to backup and restore tty setting
- ADD documentation: add enhanced README and TESTING guidelines
- ADD tests: complete test suites with benchmarks, concurrency, and edge cases
[socket]
- UPDATE package & sub-package: rename function Handler to HandlerFunc
- UPDATE package & sub-package: add new interface Handler to expose a
socket compatible handler function
[Other]
- UPDATE go.mod: bump dependencies
- gin: apply change following bumping gin (move value from interface{} to any, move key from string to any)
Package Database:
- gorm: removing clickhouse driver following cve and no update since publicated
Other:
- bump dependencies
- Driver: add instance to compare keys
- Driver: add optionnal function to search keys with a pattern of keys
- Driver: add fakefunction search based on compare & list to replace a dedicated search function
- Table: add function search function
Other:
- Bump dependencies
- interface Coder: replace all return io.reader/io.writer to same io interface but with closer implementation
- interface Coder: add Reset function to free memory
- add sha256: add new sub package that implement coder interface to calculate checksum (no decode available)
Other:
- bump dependencies
- fix bug whos aws config checksum not loaded from config struct, using callback on config process
- bump to latest sdk release
Other:
- bump dependencies
- refactor package to allow closer for bytes.Buffer, bufio.Reader, bufio.Writer, bufio.ReadWriter
- implement ReadFrom, WriterTo, StringWriter, ReadRune, ReadByte, WriteByte
- allow specify a custom close function, called in close statement
- add NewBuffer (New declare as deprecated), NewReader, NewWriter, NewReadWriter to each types bytes / bufio
- remove call of Reset in close for ReadWriter: ambigous function (ambigous in bufio struct)
Package Static:
- replace BufferReadCloser New function to NewBuffer
Other:
- bump dependencies
- bump dependencies aws sdk go v2 with checksum calulation when supported by default
- add function in config interface to allow changing checksum calculation
- set checksum calculation as 'when required' with custom config
- set checksum calcultation as 'when supported' with aws config
Other:
- bump dependencies
- fix bug with cert type marshall/unmarshall
- add old config to allow retro compatibility
- add new type function to retrieve a tls root ca cert instead of a slice of string to get root ca
Package HTTPCli:
- fix default DNS Mapper
- optimze global DNS Mapper
- fix non closing sub goroutine
Package HTTPCli/DNS-Mapper:
- change request function of Root CA with function of root ca cert instance
- add function to return a root ca cert from a function that return a slice of root ca string
Package Config/Components:
- httpcli: bump sub package of certificate, httpcli
- httpcli: adjust code following bump
- httpcli: change request function of Root CA with function of root ca cert instance
- httpcli: add function to return a root ca cert from a function that return a slice of root ca string
- tls: change request function of Root CA with function of root ca cert instance
- tls: add function to return a root ca cert from a function that return a slice of root ca string
Package IOUtils/mapCloser:
- fix bug with mapcloser not stopped
- optimize code & goroutine
Package Logger:
- rework mapCloser call
- optimize mapClaoser managment
Package Request:
- rework error managment
- using []byte instead of buffer to read response body
- add free capability
- optimize memory consumption
Package Socket / Server:
- add filtering error capability
- add params to specify a function called on each new connection and before using the connection
- the new function param allow to update the network incomming connection (like buffer, deadline...)
- rework some useless atomic to direct value to optimize code
Package Socket/Delim:
- rework to optimize memory & variable use
- remove capabilities of update the instance when running, prefert recreate new one if necessary
Other:
- bump dependencies
- minor bug / fix
- adding package to compress/uncompress with reader or writer
- refactor to allowing to use same source of io as result: io.reader or io.writer
- optimize code & buf to limit mem use
- rework variable to be thread safe
Package archive/compress
- add function DetectOnly to detect algo and return an updated reader but not the decompressor reader
- update function Detect to use DetectOnly to limit duplication code
Other
- bump dependencies
- removing package cluster & nutsdb (+ test) in waiting stabilisation of
dependencies
- adding olld source code in tarball file
Dependencies golang/x/exp:
- removing experiment dependency when using slices to root/slices
package
Bump dependencies (some dependences still use exp who's need go1.22)
- fix anonymousCredential with retrieve following bump of aws sdk
Package Logger:
- add check on io interface to prevent closing instance and allowing gracefull closing
Other:
- bump dependencies
- add new sub package pusher: pusher is an helper who's allow to push
single put object or multipart upload and implement io.writer &
io.readFrom interface
Other:
- bump dependencies
- 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
- 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
- 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
- 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 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