This repository represents the Lynar Studios - Standard Library (ls-std).

Patrick-Christopher Mattulat 787b47d6a1 Rename KvReader class %!s(int64=3) %!d(string=hai) anos
config ce721a93b4 Add SerializableFactory class %!s(int64=3) %!d(string=hai) anos
doc 2bbf2247e8 Add key value file definition %!s(int64=3) %!d(string=hai) anos
include 787b47d6a1 Rename KvReader class %!s(int64=3) %!d(string=hai) anos
source 787b47d6a1 Rename KvReader class %!s(int64=3) %!d(string=hai) anos
test 787b47d6a1 Rename KvReader class %!s(int64=3) %!d(string=hai) anos
.gitignore 2ee11bc5fb Extended .gitignore file %!s(int64=4) %!d(string=hai) anos
CMakeLists.txt 787b47d6a1 Rename KvReader class %!s(int64=3) %!d(string=hai) anos
LICENSE.MIT bbf7536450 Rename LICENSE.txt file %!s(int64=4) %!d(string=hai) anos
README.md 9828826f55 Change library version %!s(int64=3) %!d(string=hai) anos

README.md

Lynar Studios - Standard Library 1.0.0

This is a cross-platform standard library written in C++ which provides basic functionality and implementation, like:

  • Boxing
    • Double
    • Float
    • String
    • Integer
    • Long
    • Boolean
  • File
    • IReader (interface)
    • IWriter (interface)
    • IStorable (interface)
    • Model
    • Reader
    • Writer
  • Minimal Reflection
    • Class (base)
  • Time
    • Date
  • Logic
    • State Machine (Model, State, Connection)
    • IListener (Interface)
    • Narrator
  • Serialization
    • ISerializable (Interface)
    • JSON Boxing (Double, Float, String, Integer, Long, Boolean)
    • JSON State Machine (Model, State, Connection)
    • JSON Event
  • JSON
    • Marshalling
    • Unmarshalling
  • XML
    • Model (Document, Declaration, Node, Attribute)
    • Reader
    • Writer
    • Parser
  • Logger
    • Model
    • Log Level
  • Event Handling
    • IEventSubscriber (Interface)
    • Model
    • Event Handler
    • Event Manager
  • Exception
  • KV
    • Document
    • KV Pair
    • Parser
    • Reader

It has been tested on Windows, Linux and MacOS systems.

Changelog

  • Made Event class serializable
  • Added Key Value File Functionality

Documentation

You can find a detailed documentation on Lynar Studios Website: lynarstudios.com

License

This software is licensed and uses MIT-license. You can find a LICENSE.MIT file inside the project's root directory.

Building

To build this library you'd need a recent version of cmake and your OS specific compiler collection, like gcc, MSVC or AppleClang installed.
Inside project's root directory create the following folder:

cmake_build_release

Open your OS specific command line window and navigate to this new folder and run the following command to configure the project and generate a native build system:

cmake ../

Inside cmake_build_release folder you will now find cmake generated files. To compile the library now, just run:

cmake --build . --config Release

Add Library To Your Project

If you would like to add this library to your cmake project - to the CMakeLists.txt file - make sure that you add the libraries' include directory:

include_directories(${CMAKE_CURRENT_LIST_DIR}/path/to/this/library/include)

Then link the library binary file inside your CMakeLists.txt file:

target_link_libraries(... "path/to/this/library/../libls_std_YYYY.MAJOR.MINOR.dll")

Testing

This project contains unit tests to accomplish test coverage.
To run those unit tests you have to adjust TestHelper class by adding your personal test folder path to getTestFolderLocation method.
There you have to adjust location variable based on the operating system you're using.