Giter VIP home page Giter VIP logo

checheromo96 / cpstl Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 537 KB

CPSTL is a powerful C++ library that acts as a versatile wrapper for the C++ Standard Template Library (STL). It empowers developers to write code that seamlessly runs on various platforms, whether the native STL is available or not. This library provides a unified interface for STL functionality, making cross-platform development a breeze.

CMake 3.26% C++ 96.44% C 0.30%

cpstl's Introduction

CPSTL: Cross-Platform STL Wrapper

CPSTL is a library that serves as a wrapper for the C++ Standard Template Library (STL), enabling cross-platform development whether the STL is available or not. This library provides a consistent interface for STL functionality, allowing developers to write code that can run on multiple platforms without being dependent on the STL's presence.

Repository Structure

This repository is the central hub for the CPSTL project. CPSTL has been structured into separate repositories to accommodate various platforms and to ensure compatibility with different environments. Additional repositories include:

  • CPSTL-Arduino: Optimized and tested for use in Arduino projects.
  • CPSTL-CMake: Provides directory structures and CMake files for easy integration into larger projects.

Key Features

  • Cross-Platform Compatibility: CPSTL is designed to work on different platforms, ensuring that your code functions consistently regardless of the availability of the C++ STL.

  • Ease of Use: The library provides a familiar and user-friendly interface, making it easy for developers familiar with the C++ STL to work with CPSTL.

  • Integration with CMake: The repository includes directory structures and CMake files, simplifying the compilation and integration of CPSTL into larger projects.

  • Arduino Support: CPSTL has been optimized and tested for use in Arduino projects, making it a reliable choice for Arduino development.

  • Dynamic Documentation: The documentation is adaptable to the package compilation configuration, ensuring that it remains accurate and relevant for specific builds.

  • Clear Documentation: The library's documentation is generated using Doxygen, making it easy to understand the provided functions, methods, and classes in CPSTL.

Tested Platforms

CPSTL has been rigorously tested on various platforms to ensure its reliability and cross-compatibility:

  • Arduino IDE:

    • AVR (e.g., Arduino Uno, Arduino Mega, etc.) (using C)
    • ESP32 (using C, C++, and CPSTL)
  • Windows:

    • Compiled using Visual C++ (cl) (using CPSTL)
  • Ubuntu:

    • Compiled using g++ (using CPSTL)
    • Compiled using clang++ (using CPSTL)
  • Raspbian:

    • Compiled using g++ (using CPSTL)
    • Compiled using clang++ (using CPSTL)
  • macOS:

    • Compiled using g++ (using CPSTL)
    • Compiled using clang++ (using CPSTL)

Online Documentation

CPSTL offers comprehensive online documentation generated with Doxygen. This documentation provides detailed insights into the functions, methods, classes, and usage examples provided by the library.

To access the online documentation, please visit the CPSTL Documentation website.

The online documentation serves as a valuable resource for understanding and effectively utilizing CPSTL in your projects.

Quick Start

This main repository contains all the essential files compatible with various platforms and file systems, including implementations for different environments like Arduino, Windows, Ubuntu, and macOS.

  • If your primary focus is integrating CPSTL seamlessly with CMake, you'll find dedicated resources in the CPSTL-CMake repository. Here, you'll discover a structured directory layout and CMake files tailored to simplify CPSTL integration into larger projects.

  • For projects centered around Arduino development, we recommend exploring the CPSTL-Arduino repository. This repository is specifically designed with a file structure optimized for Arduino development.

Please choose the repository that aligns with your project's specific needs to streamline the integration of CPSTL into your development environment and make the most of its cross-platform capabilities.

Unit Testing

Unit testing is a critical aspect of maintaining the quality and reliability of CPSTL across its various sub-repositories. It's important to note that unit testing methods may vary between each sub-project due to the unique requirements and platforms they cater to. Thorough unit testing is conducted on each sub-repository to ensure functionality and compatibility.

Unit Testing Page

Contributions

Your contributions are highly welcome! If you encounter issues, wish to add new features, or enhance existing ones, please submit a pull request to the CPSTL repository.

Contact

For questions, suggestions, or comments, feel free to open an issue on the repository.

We hope CPSTL proves to be a valuable asset in your cross-platform development projects!

To Do:

  • Enhance the documentation structure.
  • Create a tutorials page for the documentation.
  • Implement unit testing for CPSTL-Arduino.
  • Set up unit testing actions for CPSTL-CMake and CPSTL-Arduino.

cpstl's People

Contributors

checheromo96 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.