569 Commits

Author SHA1 Message Date
Nicolas JUHEL ea7f718bf0 Update SECURITY.md
Signed-off-by: Nicolas JUHEL <githubatcom@nabbar.com>
v1.22.0
2026-04-17 11:11:16 +02:00
Nicolas JUHEL 2716c10853 Improvement - 2026-04 (#210)
Package atomic:
- 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
2026-04-17 11:09:47 +02:00
Nicolas JUHEL f3b0c6991b Package atomic:
- 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
2026-04-15 08:09:12 +02:00
Nicolas JUHEL d4d0309e85 Bump dependencies 2026-04-15 08:08:49 +02:00
Nicolas JUHEL b91ff1f954 bump dependencies 2026-04-13 18:45:39 +02:00
Nicolas JUHEL 4657701237 Bump dependencies 2026-04-06 19:09:14 +02:00
Nicolas JUHEL 4101ed8d27 Package Monitor:
- FIX benchmarch with invalid helper call
- FIX invalid epoc value for duration (epoc = second / returned = nanosecond)
- OPTIMIZE status collectors with too many allocation / statement
- UPDATE Documentation & tests
v1.21.0
2026-03-27 01:04:18 +01:00
Nicolas JUHEL d565204d20 Package Monitor
- FIX: encode ms with call of millisecond instead of uint64
- UPDATE Info interface: rename Info(), RegisterInfo() function to avoid confusion between data and interface
- UPDATE Info Encode model to add json tag to avoid unwaiting Uppercase of field name
- UPDATE testing following

Package Config:
- UPDATE aws component following change of monitor Info interface

Package Database:
- UPDATE Gorm following change of monitor Info interface

Package HTTP Server:
- UPDATE following change of monitor Info interface

Package Mail:
- UPDATE smtp following change of monitor Info interface

Package Nats:
- UPDATE following change of monitor Info interface

Package Request:
- UPDATE following change of monitor Info interface

Package Static:
- UPDATE following change of monitor Info interface

Package Status:
- UPDATE following change of monitor Info interface
2026-03-26 18:27:23 +01:00
Nicolas JUHEL 34b32c39dc Package Duration:
- Add function to check if duration is at least 1 days, hour, minute, second
- Add function to format duration in int64 of days, hours, minutes, seconds, mailli, micro and nanoseconds
- Optimize some code (parsing, range, operations)
- Update testing to extend coverage
- Add documentation GoDoc, README and examples

Package Duration/big:
- Add function to check if duration is at least 1 days, hour, minute, second
- Add function to format duration in int64 of days, hours, minutes, seconds
- Optimize some code (parsing, range, operations)
- Update testing to extend coverage
- Add documentation GoDoc, README and examples

Other:
- Fix CI/CD
- Bump dependencies
2026-03-26 00:49:08 +01:00
Nicolas JUHEL 4d649cb0b5 Package PID Control
- ADD test, bench and documentation
- REWORK code to optimize calc and context check
2026-03-23 08:42:47 +01:00
Nicolas JUHEL 162d536ab6 Package Monitor:
- UPDATE monitor status to add time as number of second (except for latency in milliseconds)
- UPDATE info to use atomic map instead of the mutex
- UPDATE info to allow overide data from config
- UPDATE info to use call function each time instead call function only on time
- UPDATE test and documentation
2026-03-23 08:36:30 +01:00
Nicolas JUHEL 2df3f4ccf8 Package Status:
- FIX missing info statement to expose in result
- UPDATE documentation, test
2026-03-23 08:33:30 +01:00
Nicolas JUHEL 9aac46b522 Package Status:
- FIX potential overflow uint8->int8 in control sub package

Package Config:
- UPDATE component status to include info metadata

Other:
- BUMP dependencies
2026-03-17 17:49:08 +01:00
Nicolas JUHEL 7b59ce5f50 Package status:
- 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
2026-03-17 08:55:20 +01:00
Nicolas JUHEL 514c5bfcc8 Component Config:
- FIX status component, in init function, missing to register version in status instance
v1.20.0
2026-03-10 02:00:41 +01:00
Nicolas JUHEL 629eb8f883 Bump go version for Toolchain 2026-03-09 22:16:10 +01:00
Nicolas JUHEL 7589a4700c Package Config & Status:
- UPDATE documentation & comments
2026-03-09 21:58:28 +01:00
Nicolas JUHEL a26e1bc2e6 Package Config Component:
- FIX monitor name when define in config monitor can differt from component key

Package HTTP Server:
- FIX onitor name when define in config monitor can differt from default server name

Other:
- BUMP dependencies
2026-03-09 20:59:52 +01:00
Nicolas JUHEL bf591435db Bump dependencies 2026-03-08 23:47:41 +01:00
Nicolas JUHEL 300a4894b8 Package ioutils/aggregator:
- OPTIMZE runner function
- SIMPLFY starting / stopping / running function
- ADJUST test & optimize timeout

Package runner/starstop
- UPDATE register start time before check & run function
2026-03-08 23:42:13 +01:00
Nicolas JUHEL fd88b68ddc Package Status:
- 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
2026-03-08 23:35:43 +01:00
Nicolas JUHEL dee5ba246e Package Encoding:
- FIX format (gofmt) for testing file
2026-03-07 16:56:29 +01:00
Nicolas JUHEL 69da52abb0 Package Status:
- ADD map mode in route middleware allowing output component by affected control list
- ADD documnentation doc.go in GoDoc format to extend documentation to gopkg site
- UPDATE parsing parameter to factorize usage
- UPDATE constant for parameters (query, header) to expose them in public, allowing using them by external call
- UPDATE testing to include test of map mode
- UPDATE documentation following change

Package Monitor:
- UPDATE remove useless variable in walk function

Other:
- FIX linter
- Bump dependencies
2026-03-07 16:51:39 +01:00
Nicolas JUHEL a045a855a9 Package Runner:
- StartStop: isolate funcStart context from starting call context

Other:
- Bump dependencies
v1.19.5
2026-02-27 10:03:43 +01:00
Nicolas JUHEL 398506b4d3 Package HTTPServer:
- ADD config option to filter log message
- ADD public function into interface was not exposed
- FIX doc graph alignment
- IMPROVE testing and godoc comments
2026-02-26 23:03:34 +01:00
Nicolas JUHEL 9ca8362086 Package Mail
- FIX: linter

Other
- FIX: gosec action
- Bump dependencies
v1.19.4
2026-02-24 21:50:42 +01:00
Nicolas JUHEL d632e3b268 Package Monitor
- Fix logger creation to use default logger if specify

Package Status:
- Fix strict status do not use resilience map config anymore to prevent wrong result

Other:
- Bump dependencies
2026-02-24 17:21:48 +01:00
Nicolas JUHEL 4455642343 Other:
- 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
v1.19.3
2026-02-11 18:06:11 +01:00
Nicolas JUHEL 3695c53b9f Other:
- bump dependencies
2026-02-11 11:10:53 +01:00
Nicolas JUHEL 7c15bf4dc9 Package ioutils/mapCloser:
- 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
2026-02-11 11:05:18 +01:00
Nicolas JUHEL aef9e8ccee Try fixing CI/CD with apt install v1.19.2 2026-02-04 16:50:48 +01:00
Nicolas JUHEL 65be90504e Package Artifact:
- 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
2026-02-04 14:31:20 +01:00
nabbar 6c01934933 Bump go toolchain to prevent CVE-2025-61727 2026-02-04 00:02:26 +01:00
nabbar e066818c21 Package Logger:
- 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
2026-02-03 20:28:31 +01:00
nabbar 2e0866bba6 Package shell:
- ADD: function ExitRegister to allow custom exit function and command
- UPDATE: documentation following change
2026-01-30 12:36:08 +01:00
Nicolas JUHEL 314b3ba7d3 Fix 2026-01 (#209)
Package Archive:
- 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
v1.19.1
2026-01-22 19:45:11 +01:00
Nicolas JUHEL 40b350b89e Package Archive:
- 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
2026-01-22 19:33:53 +01:00
nabbar 1fdf545a8b Package Semaphore:
- Fix: can create Progress Bar, without MPB, so now create fakeBar
2026-01-01 06:20:45 +01:00
nabbar 1c32b7f6b6 Package Logger:
- Fix bug with Hookfile (counter opened file not store first call)
v1.19.0
2025-12-26 16:08:51 +01:00
nabbar 0b384eee54 Package Archive:
- Update benchmark
- Update documentations
2025-12-26 09:00:08 +01:00
nabbar 99075ec0d4 Package Logger:
- 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
2025-12-26 02:40:45 +01:00
nabbar b15beaf33d Package Monitor:
- 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
2025-12-24 16:54:12 +01:00
nabbar eac01ac6c7 Package HTTPServer:
- Adjust delay to freeing port / checking alive with slow system
2025-12-23 17:44:10 +01:00
nabbar fa8adbe7c8 Package Socket:
- config Server: change time duration to golib duration to simplify
  marshal string form
- adjust test following update of config server
- fix test in socket package to use BDD framework & gherkin form
- adjust documentation & test

Package HTTPServer:
- Fix bug in PortUse & PortNotUse
- Move function PortUse & PortNotUse as alone function
- Add test & documentation
- Unify test & documentation following other packages
2025-12-23 16:27:47 +01:00
nabbar 8fabc2f5e1 Package HTTPServer:
- Add: error for invalid address check
- Move: errors string InvalidInstance as golib/error type
- Update: add check of listen address in port use function
2025-12-22 13:08:08 +01:00
nabbar e89b03987d Package Socket:
- Update config: add tags to json, yml, ... serialization
- Update config: extract TLS struct as independant struct to simplify
- Update config/test: fix following unify TLS config
- Update server/test: fix following unify TLS config
2025-12-22 13:05:28 +01:00
nabbar 97573c4bac Fix statistics in documentation 2025-12-21 17:46:31 +01:00
nabbar 737f174177 Documentation:
- FIX: package ioutils main documentation md & GoDoc
- FIX: root documentation
2025-12-21 17:34:27 +01:00
nabbar 96ed6f9a1f [Package IOUtils/Delim]
- 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
2025-12-21 16:56:13 +01:00
nabbar 2ccaadd0ec Other:
- bump dependencies
2025-12-17 09:17:44 +01:00