Skip to content

Utility libraries for common project necessities, like loggers, version information, settings file read/write, etc.

License

Notifications You must be signed in to change notification settings

COGMLS/UtilityLibs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

462 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Utility Libraries

About Utility Libraries repository:

This repository is destined to store the development of important common utility libraries used in projects like settings, log reports, versioning tools, directory and file management, but also to other purposes that can be commonly used in projects.

The Utility Libraries repository contains some libraries that was designed first to specific projects and than adapted to a more generic approach, allowing an easy way to be used in many projects. The repository contain libraries focus on C++ development, but some libraries can contain ported versions to other languages. Check the project documentation to see more details about. Each project contain a folder Docs that holds their own documentations.

IMPORTANT: All commits, branch merging and tags are managed in a local server. The GitHub repository is a secondary place to this project and the Pull Requests are not used by the author.

The repository is focus on development of cross-platform projects, but a few projects can may be an exception depending the platform support or their capabilities.

Important

NEW LIBRARY NAMING:

Now libraries use Utility Libraries Naming Standard for binary files. Check the details here

Libraries Available:

Name Description Documentation Stable Version Last Version Cross-platform support Languages or Frameworks Available Development branch Notes
LoggerLib Logger library to provide support to manage in real-time the log data creation inside a application, providing support to create multiple log entries and manage them with support to autosave the entries inside the memory. This library support to cross-platform and wide strings (LoggerW class), useful on Windows systems. README.md ReleaseNotes 3.3.3-release 3.4.0-rc Linux, Windows, Mac C++20 LoggerLibDev This patch is a memory optimization update, no functional change was made
LoggerLibSolution This is a deprecated project that was part from another one. Is recommended to use LoggerLib that has cross-platform support and receives constant updates Not available 1.1.0 1.1.0 No. Windows only C++17 LoggerLibDev
SettingsLib Library to provide multiple configuration formats, allowing read, edit and write the configurations into a database and save it into a file. README.md ReleaseNotes N/A 3.0.0-alpha Linux, Windows, Mac C++20 SettingsLibDev This project is under development and was not merged into master
VersionLib Version Library is design to easily create relations between version information available in a program and other libraries, allowing to make fast tests of compatible versions. This library is focus on provide semantic versioning support. It can also be permissive on other version formats, check the documentation for more details. README.md ReleaseNotes TechnicalInformation 0.8.7-beta 0.9.2-alpha Linux, Windows, Mac C++20 VersionLibDev NOTE 1: On version 0.9.0-alpha, the library started to be redesign and may contain several bugs. To use the stable version, use the tag: VersionLib_0.8.7-beta NOTE 2: The Version Library has been updated to support version tokens and more flexible components, the current components can be heavily modified during the process of implementation

NOTE: The projects with cross-platform marked with Macintosh support was not tested, because I do not have a Mac. But they use ISO C++, ISO C, .Net, or other language/framework that has support and their features are functional on Mac, considering the documentations available.

Utility Libraries Naming Convention:

To reduce possible incompatibility issues with libraries that are available in more than one version, all libraries will pass to use a naming convention to make a standard way to avoid the possibility to call the wrong library base on the exactly name.

The naming convention will follow the template: UtilLibs. LibraryName and LibraryGeneration

The LibraryGeneration normally will match with the library's major version, but it's possible to not be all time like this. Some libraries may offer compatibility with older features, but they may be marked as "deprecated" and can be removed in a future release. Always check the documentation available for more details.

Naming example:

LoggerLib 3th generation pre naming convention: On Linux: libLoggerLib.so On Windows: LoggerLib.dll

LoggerLib 3th generation pos naming convention: On Linux: libUtilLibs.LoggerLib3.so On Windows: UtilLibs.LoggerLib3.dll

LoggerLib 4th generation (without naming convention): On Linux: libLoggerLib.so On Windows: LoggerLib.dll

LoggerLib 4th generation (with naming convention): On Linux: libUtilLibs.LoggerLib4.so On Windows: UtilLibs.LoggerLib4.dll

Now it's possible to known the library generation and avoid possible wrong library calling, especially if both libraries are installed in PATH.

License

A copy is available in this file

MIT License

Copyright (c) 2022-2025 Matheus L. Silvati

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

Utility libraries for common project necessities, like loggers, version information, settings file read/write, etc.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published