- IMPROVE allocations
- IMPROVE cast process
- ADD test, bench and godoc documentation
Package Duration
- ADD function to format as uint32
- OPTIMIZE parsing to zero allocation process
Package Duration/Big
- ADD function to format as uint32
- OPTIMIZE parsing to zero allocation process
Package Errors:
- IMPROVE allocations
- IMPROVE process contentions
- ADD bench and godoc documentation
- UPDATE test
Package Errors/Pool:
- IMPROVE allocations
- IMPROVE process contentions
- OPTIMIZE package to prevent latency when parsing all map
- OPTIMIZE package to use zero allocation or near
- OPTIMIZE package to avoid many of slice
- UPDATE tests
- ADD bench and godoc documentation
Package Runner:
- UPDATE documentation
- UPDATE ticker function with new interface to only allow Reset function to update time ticker
Package Runner/StartStop:
- IMPROVE allocations
- IMPROVE state, start, stop, context process
- ADD bench and godoc documentation
- UPDATE test
Package Runner/Ticker:
- IMPROVE allocations
- IMPROVE state, start, stop, context process
- ADD bench and godoc documentation
- UPDATE test
Package IOUtils/Aggregator:
- IMPROVE allocations
- IMPROVE runner, context process
- UPDATE bench(from gmeasur to go bench), test and godoc documentation
Package Monitor:
- UPDATE runner/ticker function to apply change following runner type change
Package Logger/HookFile:
- IMPROVE statement fire to use pre-allocated formatting function
- UPDATE aggregator initialising to wait instance is started
- UPDATE test, bench
Package Logger/HookSyslog:
- IMPROVE statement fire to use pre-allocated formatting function
- UPDATE aggregator initialising to wait instance is started
- ADD bench
Package Size
- OPTIMIZE package to zero allocation (except stringer & parsing)
- OPTIMIZE CPU flow
- FIX bug in arithmetic & stringer function
- UPDATE test
Package Socket/server
- OPTIMIZE all socket server to reduce allocation or use pre-allocated resources
- OPTIMIZE all socker server to reduce CPU statment
- OPTIMIZE all socket server to prevent un-omnipotent process
- UPDATE documentation & test
Package Socket/Idle Manager
- ADD new package to centralize all timer/ticker in only one
- OPTIMIZE cpu statment by using pre-allocation & sharding
- OPTIMIZE allocation with sync pool and pre-allocation of shard
- ADD test
- ADD features to allow filtering component or mandatory list in api request
- ADD name properties to mandatory list allow filter on it
- ADD default naming capabilit for mandatory if not set
- ADD metadata information for mandatory, component and main status
- UPDATE testing and documentation
- FIX minor bug to prevent panic
Other:
- BUMP dependencies
- ADD config tag for json, yaml, toml...
- FIX bug in map calculation for ignore component
- UPDATE map calculation to ignore empty component list by control item
Package Config:
- ADD new function component interface to retrieve monitor name
- Update all component & test to add new function
- ADD new component status to load config and maintain status instance
Other:
- FIX test and linter
- Bump go1.26 to fix CVE-2025-68121
- Bump github action go version
- Update: adjust code following bump of go.26 (update of vet, ...)
- Update: adjust test following changes
- Update: remove pulling of context because redondant statement
- Update: remove useless function
Package logger:
- Update: remove pulling of context in hookfile/hooksyslog because useless statement
- Update: test for hookfile
- Update: logger mapcloser initialization to use main context background to allow closing ressource if context is closed
- FIX: Helper, bug when list release function is not set or invalid
- FIX: Helper, bug with map/slice not initialized
- FIX: s3aws, need set the list release
Package AWS:
- FIX: Object/Find, potential bug if key is not valid
Package Logger:
- FIX: hooksyslog, closed hook could still continue to send message, so sending message is a priority
Other:
- Bump dependencies
- ADD function NewFrom to simplify new instanciation of logger with options and from other instances
- FIX potential error with fields
- UPDATE test, documentation about new function
- UPDATE name of internal private struct with a shorter form
Package HTTP Server:
- UPDATE logger creation to use NewFrom
Package Monitor:
- UPDATE logger creation to use NewFrom
Package Request:
- UPDATE logger creation to use NewFrom
Other:
- Bump dependencies
- FIX: bug in archive/zip with calculating size when reader does not having function Size or Stat, but still be compatible with seeker interface
Package Cobra:
- FIX: missing toml import, use v2
- FIX: test errors
Package Config:
- FIX: component log, Log function does no more clone logger to prevent to many diffrent instances
- ADD: component log, CloneLog function has been add to return a specific cloned logger when necessary
- UPDATE: test to following changes
Package Logger:
- UPDATE Hooksyslog: refactor syslog hook to use aggregator package and socket client package to allow in futur capabilities of all real syslog socket
- UPDATE Hooksyslog: refactor syslog hook to allow sending syslog message from any system included windows
- UPDATE Hooksyslog: add function to get local system syslog when hostname is empty, except for windows
- UPDATE Hooksyslog: rework Fire function to calculate final log message on fire instead on sending (based on RFC + golang/log/syslog)
- UPDATE Hooksyslog: update test & documentation
Package Monitor:
- FIX: potential bug when default loger given is nil
Package Semaphore:
- UPDATE: removing useless function in nobar subpackage
Common:
- UPDATE: Bump dependencies
- hookfile: simplify recovering of resources
- hookfile: add message to resource when recovering process executed
Package Archive:
- Add test & documentation in each subpackages
- Add GoDoc & exmaples in packages and subpackages
- Update README & TESTING md files
Bump dependencies
- Fix bug with calculation of state
- Fix bug with recover function
- Remove useless files
- Update tests to improve case & coverage
Package HTTPServer:
- Fix bug with recover function
Package Prometheus
- Fix bug with recover function
Package Runner
- Fix bug with recover function
Package IOUtils/Aggregator
- Fix bug with start/stop/restart/isRunning function
- Update start to be idempotent
- Update test with more case & coverage
- Rework tests to organized them better with reference
- Update documentation following changes
Package Logger:
- Fix hookfile closing ressource and log still fire
- Update test for hookfile
- Adjust documentation following changes
- 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
[file/bandwidth]
- ADD documentation: add enhanced README and TESTING guidelines
- ADD tests: complete test suites with benchmarks, concurrency, and edge cases
[file/perm]
- ADD documentation: add enhanced README and TESTING guidelines
- ADD tests: complete test suites with benchmarks, concurrency, and edge cases
- ADD function to parse form "rwx-wxr-x" or "-rwx-w-r-x"
- ADD function to ParseFileMode to convert os.FileMode to file.Perm
[file/progress]
- ADD documentation: add enhanced README and TESTING guidelines
- ADD tests: complete test suites with benchmarks, concurrency, and edge cases
[ioutils/...]
- UPDATE documentation: update enhanced README and TESTING guidelines
- UPDATE tests: complete test suites with benchmarks, concurrency, and edge cases
[logger/...]
- UPDATE documentation: update enhanced README and TESTING guidelines
- ADD documentation: add enhanced README and TESTING guidelines for sub
packages
- UPDATE tests: complete test suites with benchmarks, concurrency, and edge cases
- UPDATE config: remove FileBufferSize from OptionFile (rework hookfile)
- UPDATE fields: expose Store function in interface
- REWORK hookfile: rework package, use aggregator to allow multi write and
single file
- FIX hookstderr: fix bug with NonColorable
- FIX hookstdout: fix bug with NonColorable
- FIX hookwriter: fix bug with NonColorable
[network/protocol]
- ADD function IsTCP, IsUDP, IsUnixLike to check type of protocol
[runner]
- FIX typo
[socket]
- UPDATE documentation: update enhanced README and TESTING guidelines
- ADD documentation: add enhanced README and TESTING guidelines for sub
packages
- UPDATE tests: complete test suites with benchmarks, concurrency, and edge cases
- REWORK server: use context compatible io.reader, io.writer, io.closer
instead of reader / writer
- REWORK server: simplify, optimize server
- REMOVE reader, writer type
- ADD context: add new interface in root socket interface to expose
context interface that extend context, io reader/writer/closer,
dediacted function to server (IsConnected, ...)
- Add some README file to give missing documentations or update existing documentation file
Package Archive:
- Add some comments to godoc information
- Moving NopWriterCloser interface to ioutils package
Package IOUtils:
- New package NopWriterCloser to implement interfac like NopReader
Package Database:
- KVMap: fix missing function following update of kvdriver
Package Duration:
- Rename BDD testing
Package Context/Gin:
- Moving function New between model & interface file
Package AWS:
- rework Walk function to use more generic with standard walk caller function
- func walk will now no more return and include error (can be catched into the given func)
- func walk will now return a bool to continue or stop the loop
- func walk with many input function will now stop when all given function return false
- func walk will now return error only about main process and not given function
Package errors:
- Add interface error into interface Error
Package IOUtils:
- Moving IOWrapper as subPackage and optimize process + allow thread safe
- STD IO Writer Logger: add capabilities of multi filter slice of byte
- STD IO Writer Logger: add function Add..Filter to allow adding filter and not full setting the pattern list
Package HTTP Server:
- Rework filtering logger message to ignore connections reset by peer in server logger
- Rework filtering logger message to ingore all TLS Handshake error in logger
- 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
- 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
- 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 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 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 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 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 ioutils:
- remove file progress from ioutils and rework it to package
file/progress
Package file/progress:
- simplify call / use of file progress
- optimize code
- use atomic to function progress
- isolation part of code
- make interface more compatible with *os/File / io interface
Package archive/gzipreader
- create package to expose a io.reader interface from a no gzipped io.reader
- add interface GZipReader to expose metrics like rate of compression
Package archive:
- apply following change
- add minor internal change into errors files
Package artifact:
- apply following change
- add minor internal change into errors files
Package aws:
- apply following change
- removing minio server from repo
Package mail:
- apply following change
- add minor internal change into errors files
Package nutsdb:
- apply following change
- add minor internal change into errors files
Package static:
- apply following change
Other:
- bump dependencies
- ci/cd : add a wget command to dl minio server for testing
- add aws/minio to gitignore
- Rework for the management of mandatory components to qualify the global status.
- Added qualification to components: "should", "must", "one of".
- These qualifications will influence the overall state but not the unitary state of each component.
Package Socket:
- Creation package to open and listen local unix file socket
- Allow to specify a handler who's needing a conn instance as entry
- Create a client sub package to allow negociate with the local unix file socket
Package Shell:
- adding sub package for command and command collection
Package Monitor:
- add function to expose monitor command for shell
Package Config:
- add function to expose monitor command for shell
Package Network:
- Add "IP" protocol
Pakcage Httpcli:
- Rework the construction of the client
- Add capability to specify proxy url
Package Cobra:
- add function to add flag to global command like verbose or config
Package Log:
- fix seg fault when calling a nil instance
- remove println in hookfile / hooksyslog
- fix buffer wrtting / cleanning
- add recovery to catch fatal error
Package Server :
- add recovery to catch fatal error
Package Status :
- add IsHealthy function with cache value to prevent checking monitor on all call
Bump dependencies
- Rework logger
- Remove deprecated functions
- Split Logger to sub package (fields, level, config, ...)
- Optimize dependencies
- Rework Hookfile: fix error like FD still opened
- Rework Hooksyslog: use same model like Hookfile, use network/protocol instead of self lib
- Rework HookStd: use independent hook for std out & std err
- Fix std config make generic options for files & syslog
- Apply formatter to hook instead of main logger entry
- optimize code
Package ioutils:
- rework PathCheckCreate funct: optimize code & fix some error
Package Network:
- create sub package protocol for all network protocl use
- add encode function
Package httpcli:
- remove file network
- use package network/protocol instead of network file
Package archive:
- apply change following rework of logger
Package aws:
- apply change following rework of logger
Package cluster:
- apply change following rework of logger
Package cobra:
- apply change following rework of logger
Package Config Component:
- apply change following rework of logger to component log
- fix logger for monitoring
- fix component following fix of package request / monitoring
Package context:
- apply change following rework of logger
Package database:
- apply change following rework of logger
Package httpserver:
- apply change following rework of logger
Package ldap:
- apply change following rework of logger
Package monitor:
- apply change following rework of logger
- fix logger for monitoring
- fix minor bugs
Package nats:
- apply change following rework of logger
Package nutsdb:
- apply change following rework of logger
Package request:
- apply change following rework of logger
- fix minor bug
- fix missing logger for monitoring
- add one line for healthcheck (info or error)
Package router:
- apply change following rework of logger
Package static:
- apply change following rework of logger
Package status:
- apply change following rework of logger
- fix bug with mandatory component
Package viper:
- apply change following rework of logger
Other:
- bump dependencies
- github action workflow fix
- objects / list Access All : add username param to allow list access and return a slice of access struct for the specify user, if username is empty, send the request without username
- sizepart : remove sizepart struct and replace it by package golib/size
Package Logger:
- fields : fix error with field & sync/map
Bump dependencies
- Add interface Errors to expose func for collection of errors
Package Server:
- Add runner packages for start/stop & ticker process launch in goroutines
- Runner Start/Stop : register a start and a stop function called into a managment instance of goroutines, expose package Server interface
- Runner Ticker : register a func periodycly called into a managment instance of goroutine with a time ticker, expose package server interface
- Add tools function to run x times a function or periodicly with a check function
Package HttpServer:
- Remove old run managment instance and use new Start&Stop Runner instead self runner
- Replace the poller in server start / stop with package server tools function
- Adjust code following this change
- Add in healthcheck a test of dialing to server binding network to perform the healthcheck
- Remove WaitNotify funct (cannot having multiple of waitnotify in same app) : keep waitnotify function in package config
Package Monitor:
- Remove old running system to use package server/runner/ticker
- Adjust code following
Package Cobra :
- Fix minor bug with writing configure
- Optimize code
Bump dependencies
Package Monitoring :
- use packag dedicated to monitor component
- each monitor work as standalone server to monitor health
- collect metrics to export them to prometheus exporter
Package Prometheus :
- review to simplify use for API and not API metrics
- optimize code
Package Status :
- Rework to use Monitor package
- Rework to use native json / text Marshaller interface
Context :
- rework context config (context var) to use sync map and sync RWMutex (WORM)
- move gin context to dedicated sub package (dependancies of logger make circular dependencies)
- optimize code
Config :
- rework to optimize sync / collect of component
- rework status to monitor
- remove monitor managment from config to each component
- add a func to set default logger to implement inherit default logger options
- optimize code
IOUtils :
- isolate logger / closer interface as a usable & public interface & instance
- this interface / instance allow to collect io.closer over a context to close all if context is done
Logger :
- rework to use context.config map
- rework to use ioutils closer
- rework to allow options to inherit a default options, or the last version of options
- optimize code
Size :
- Add package Size to calculate and manipulate size Byte or bit
- Add encoding : Text/JSON/Yaml/Toml...
- Add option to défine default unit : Byte or bit
Other :
- adjust following code
- optimize code
- limit use of atomic value
- rework to use RWMutex instead of sync.Mutex to maximize capabilities of read instead of write
- remove 32bit build for CI/CD
- add darwin/arm64 build for CI/CD
Bump Dependencies
- Package Errors : fix error with slice of error not returning all parent
- Package Logger :
- fix log error slice
- following bump hclog : implement GetLevel + adjust SetLevel to report different between hc log debug & trace following EnableTrace in options
- Bump dependencies
- Change reloading component method : try to reload all component and store errors, report list of errors but don't break the reloading process
Package Logger :
- Fix bug with entry logger filtering
Package Viper:
- reword message log before reloading config file (watchFS)
- add message log after reloading config file (watchFS)
Package Status :
- Fix DATA Race with status/info
- Add component key into log error message for health
- Add component key into function to use it into info (name)
- Reword health message : no OK/KO (still into status info), add error message reporting
Package httpserver :
- status info : apply update status component, use key in name
- status info : optimize code
Package Request :
- Fix error in url path operation
- Status info : optimize code
- Status info : apply update component, add endpoint hostname with name
Package Static :
- apply status component update
Other :
- Bump dependencies
- optimize output writer block for Get function
- add query string params online to print all result as one line plain text format
Package logger :
- refactor closer function to specific interface
- refactor syslog linux to log message by severity instead of same severity for all message
Other :
- Bump dependencies
- Fix too many open file for logger file
- Fix invalid FD for log file
- Fix bug with field into entry
- Fix race detection on testing
Package Status :
- Add capability to send short into query to received a short output without any result of component
- Add Connection Header as Close to router status return of Get
- Fix race detection into health with concurrent read/write data
- Fix race detection with update of main router
Package HTTPServer :
- Add option to disable keepalive for server
- Fix config tag error
- Fix logger usage / close
Package Config :
- Fix component using logger to implement a close
- Fix logger initialization :
- use local var to setup new logger based on logger clone if loger still existing
- if error while configuring new logger, do not change logger
- closing old logger before replace it with new
Package Router :
- Fix missing ignore error return
- Fix golib logger not closed
Other :
- Bump dependencies
- Fix bug : apply file permission on directory
Package errors :
- Add function dedicated to recorved : add at least 5 frame trace into message
- Add function to retrieve at least 5 frame not in golib, vendor and runtime root package
- Fix error in frame extraction
Package Logger :
- Add mutex to fix race error
- Fix missing origin error while return error for open/create file
- Clean useless commented code
Package Router :
- Skip gin context abort if context still aborted
- refactory recovery error to liberr.NewErrorRecovered to include enought trace
Add function to log minimalist information and access log (latency, size remote info, ...)
Add option to transform (exclusif) logger as access logger
fix errors & optimize
Package Router :
Update methode to start gin engine with access / error logger from package logger
fix error into middleware logger
use specif middleware for starttime and request path
optimize
Package ioutils :
fix tools : missing control path still existing to prevent truncate destination file
fix tools : ignore chmod error (not mandatory if file can be create/append)
Package Prometheus :
use generic starttime into context if available
Bump Dependencies
- Config Model : add a config model with a golib RouerStatus Config Model to use a AWS connection for API with a request status health check
- Config Interface : add function GetAccessKey to retrieve the accesskey value currently used into the current connection
- function Walk (Object, version, ...) : fix bug with pointer of string not initialized
Package Config :
- interface Component : add status router pointer into the Init function to allow used a global router status for all component status registration as router status component
Package Status :
- move Status Config as an sub package of Package Status
Package Errors :
- add CamelCase const
Package Logger :
- fix following bump dependencies
Global :
- bump dependencies
- change init of errors files : change function never call vy panic to prevent an error code collision
- Bucket : add function Walk based on list but run a given function for each found bucket
- Object : add function Walk & WalkPrefix based on ListPrefix to run a given function for each returned object
- Object : add function WalkVersion & WalkVersionPrefix based on ListVersion to run a given function for each returned object version
Package logger:
- Fix bug with compat : a nil error not clean when sent to logger
Package Context:
- Fix bug with context/config : the load key return an atomic value instead of the interface stored
- slipt package between pure httpcli and request to become new package Request
- Add options to httpcli allowed to create an http client based on options
Package AWS :
- add option for delete object : check boolean to make or not the check (head) before delete
- add exclusion of NoSuchKey error if check is false
Package Request :
- integer option capabilities to configure the request inteface
- use httpcli option to get httpcli (keep custom function to get an *http.client)
- extend function to mode manage the request
- use embed go func
- expand managment for more capabilities
- implement router status new model
- fix race detection
- bump dependancies
- remove useless dependancies