Skip to content

This repository contains C++ and Arduino Libraries that are lightweight and easy to use. All libraries were created/mimicked by me and chatgpt.

License

Notifications You must be signed in to change notification settings

braydenanderson2014/C-Arduino-Libraries

Repository files navigation

C-Arduino-Libraries

πŸš€ A collection of optimized C++ libraries for Arduino and embedded systems

πŸ“ Project Structure

All libraries are located under the lib folder. For best results, open the parent folder containing this README.md to access the full project.

  • πŸ“Œ The src folder contains the main project file (main.cpp) for testing libraries.
  • πŸ§ͺ The Test folder allows unit testing using the Unity framework. Enable it in platformio.ini when needed.
  • πŸ“– Each library has its own README file with setup instructions.
  • πŸ” Some libraries are also available on Arduino Library Manager. See the list below for version details.

πŸ’– Support My Work

If you find these libraries useful, consider supporting me:

πŸ”— Donate via GoFundMe
πŸ’° Click the Sponsor Button at the top of this repository!


SPECIAL THANKS FOR THOSE WHO SPONSER MY WORK:

  • Brayden Anderson (Developer)

⚠ Library Testing & Stability

Most libraries are [PARTIALLY-TESTED] or [MOSTLY-TESTED]. Even [STABLE] libraries may contain unknown bugs. If you encounter issues, please report them on this repository.

⚠ Note: Some libraries have different published names. For example:

  • Properties β†’ Published as SimpleProperties
  • iostream β†’ Published as BasicIOStream

πŸ“Œ [Development Branch]: Libraries here are in active development and may not compile. Use main branch versions for stable releases.


πŸ“š Available Libraries

  • Dictionary [DEVELOPMENT-COMPLETE] (PURE VIRTUAL : No Concrete Implementation in this Library), [TESTING-NOT-NECESSARY],[IMPLEMENTED IN ANOTHER LIBRARY]
  • Hashtable [PASSIVE-DEVELOPMENT], [TESTED], [STABLE]
  • iostream [PASSIVE-DEVELOPMENT] (Published as : BasicIOStream), [PARTIALLY-TESTED], [STABLE]
  • iterator [DEVELOPMENT-COMPLETE], (PURE VIRTUAL : No Concrete Implementation in this Library) [TESTING-NOT-NECESSARY]
  • Properties [PASSIVE-DEVELOPMENT] (Published as : SimpleProperties), [MOSTLY-TESTED], [STABLE]
  • SimpleVector [PASSIVE-DEVELOPMENT] , [TESTED], [STABLE]
  • Timer [PASSIVE_DEVELOPMENT] (Published as : SimpleArduinoTimer), [MOSTLY-TESTED], [SEMI-STABLE]
  • UnorderedMap [PASSIVE-DEVELOPMENT], [PARTIALLY-TESTED], [STABLE]
  • LinkedList [PASSIVE-DEVELOPMENT] (Published as : BasicLinkedList), [PARTIALLY-TESTED], [STABLE]
  • DoubleLinkedList [PASSIVE-DEVELOPMENT], [PARTIALLY-TESTED], [STABLE]
  • MyDictionary [ACTIVE-DEVELOPMENT],(implemented Version of the Dictionary Class), [UNTESTED]
  • SDList [PASSIVE-DEVELOPMENT], [REIMPLEMENTED], [MOSTLY-TESTED], [UNSTABLE]
  • ArrayList [PASSIVE-DEVELOPMENT], [TESTED], [STABLE]
  • SimpleMutex [ACTIVE-DEVELOPMENT]
  • SimpleThreadManager [ACTIVE-DEVELOPMENT]
  • Operators [PASSIVE-DEVELOPMENT], [STABLE]
  • Predicates [PASSIVE-DEVELOPMENT], [STABLE]
  • TypeTraits [PASSIVE-DEVELOPMENT], [STABLE]
  • Numeric_Limits [PASSIVE-DEVELOPMENT], [STABLE]
  • Map [ACTIVE-DEVELOPMENT], [STABLE], [PARTIALLY-TESTED]
  • Queue [PASSIVE-DEVELOPMENT], [STABLE]
  • Stack [PASSIVE-DEVELOPMENT], [STABLE]
  • MatrixMath [PASSIVE-DEVELOPMENT], [UNTESTED]
  • MathLib [PASSIVE-DEVELOPMENT], [UNTESTED]
  • ColorManager [PASSIVE-DEVELOPMENT], [UNTESTED]
  • InitializerList [PASSIVE-DEVELOPMENT], [UNTESTED]
  • Optional [ACTIVE-DEVELOPMENT], [MOSTLY-TESTED]
  • Variant [ACTIVE-DEVELOPMENT], [MOSTLY-TESTED]
  • ExtremeVariant [ACTIVE-DEVELOPMENT], [MOSTLY-TESTED]

Total Available Libraries: (45) Total Libraries: (51)

πŸ† Stable & Tested Libraries βœ…

Library Status Notes
Dictionary βœ… DEVELOPMENT-COMPLETE Pure Virtual (No Concrete Implementation)
Hashtable πŸ›  PASSIVE-DEVELOPMENT βœ… TESTED, πŸ† STABLE
SimpleVector πŸ›  PASSIVE-DEVELOPMENT βœ… TESTED, πŸ† STABLE
ArrayList πŸ›  PASSIVE-DEVELOPMENT βœ… TESTED, ⚠ SEMI-STABLE
Timer πŸ›  PASSIVE-DEVELOPMENT βœ… MOSTLY-TESTED, ⚠ SEMI-STABLE
LinkedList πŸ›  PASSIVE-DEVELOPMENT βœ… PARTIALLY-TESTED, πŸ† STABLE
UnorderedMap πŸ›  PASSIVE-DEVELOPMENT βœ… PARTIALLY-TESTED, πŸ† STABLE
Stack πŸ›  PASSIVE-DEVELOPMENT βœ… TESTED, πŸ† STABLE
Queue πŸ›  PASSIVE-DEVELOPMENT βœ… TESTED, πŸ† STABLE
Operators πŸ›  PASSIVE-DEVELOPMENT βœ… TESTED, πŸ† STABLE
Predicates πŸ›  PASSIVE-DEVELOPMENT βœ… TESTED, πŸ† STABLE

πŸ”¬ Active Development Libraries ⚑

Library Status Notes
MyDictionary 🚧 DEVELOPMENT-PAUSED ⚠ UNTESTED
SimpleMutex 🚧 DEVELOPMENT-PAUSED ⚠ UNTESTED
SimpleThreadManager 🚧 DEVELOPMENT-PAUSED ⚠ UNTESTED
JSON πŸ”₯ ACTIVE-DEVELOPMENT 🚧 UNPUBLISHED
MemoryManager πŸ”₯ ACTIVE-DEVELOPMENT 🚧 UNPUBLISHED
Optional πŸ”₯ ACTIVE-DEVELOPMENT βœ… MOSTLY-TESTED
Variant πŸ”₯ ACTIVE-DEVELOPMENT βœ… MOSTLY-TESTED
ExtremeVariant πŸ”₯ ACTIVE-DEVELOPMENT βœ… MOSTLY-TESTED
DynamicStorage πŸ”₯ ACTIVE-DEVELOPMENT 🚧 IN PROGRESS

πŸ§ͺ Currently Testing Libraries πŸ”

🚧 These libraries are under active testing:

  1. MatrixMath 🚧 TESTING-PAUSED
  2. MathLib 🚧 TESTING-PAUSED
  3. JSON πŸ”₯ ACTIVELY-TESTING
  4. Optional πŸ”₯ ACTIVELY-TESTING
  5. Variant πŸ›  PASSIVE-TESTING
  6. ExtremeVariant πŸ”₯ ACTIVELY-TESTING
  7. ArrayList πŸ›  PASSIVE-TESTING
  8. SimpleVector πŸ›  PASSIVE-TESTING

🚧 Unpublished Libraries (In Development)

πŸ“’ These libraries are not yet available but are under active development:

Library Status
SimpleMutex 🚧 DEVELOPMENT-PAUSED, ❌ UNPUBLISHED
SimpleThreadManager 🚧 DEVELOPMENT-PAUSED, ❌ UNPUBLISHED
OrderedMap πŸ”₯ ACTIVE-DEVELOPMENT, ❌ UNPUBLISHED
JSON πŸ”₯ ACTIVE-DEVELOPMENT, ❌ UNPUBLISHED
STRING πŸ”₯ ACTIVE-DEVELOPMENT, ❌ UNPUBLISHED
MemoryManager πŸ”₯ ACTIVE-DEVELOPMENT, ❌ UNPUBLISHED
ExtremeVariant πŸ”₯ ACTIVE-DEVELOPMENT, ❌ UNPUBLISHED
DynamicStorage πŸ”₯ ACTIVE-DEVELOPMENT, ❌ UNPUBLISHED

πŸ“œ Libraries Published on Arduino Library Manager

  • ArrayList [ON-PAR]
  • SimpleVector [ON-PAR]
  • Hashtable [ON-PAR]
  • Properties (SimpleProperties)
  • Timer (ArduinoTimer)
  • LinkedList (ArduinoLinkedList)
  • UnorderedMap
  • DoubleLinkedList (ArduinoDoubleLinkedList)
  • SDList (Arduino SDList) [ON-PAR]
  • Optional (Will be synced between Versions shortly (made a mistake))
  • Variant [ON-PAR]

πŸ“’ Contributing & Issues

πŸ›  Found a bug? Have a question? Open an issue on GitHub!

πŸ’‘ Want to contribute? Fork the repository and submit a pull request with your changes.


πŸ“œ Final Notes

  • Libraries marked as [ON-PAR] have the same version in Arduino Library Manager and PlatformIO.
  • If a library is not [ON-PAR], the Arduino version may be outdated. Updates on PlatformIO happen first due to ease of deployment.

πŸš€ Happy coding & thank you for using my libraries! πŸš€


🎯 Quick Links

πŸ”— GoFundMe - Support My Work! πŸ”— Patreon - Support My Work!
πŸ”— Platformio Registry
πŸ”— GitHub Repository
πŸ”— Arduino Library Manager

ALL LIBRARIES INCLUDE A README.md

πŸ“Š PlatformIO Leaderboard for These Libraries

πŸ“… Updated: 01/29/2025 09:08 PM Mountain Time

Library Name Position Downloads MTD Total Downloads
ArrayList 1,186 22 178
Dictionary 14,128 0 16
SimpleArduinoTimer 3,947 2 16
UnorderedMap 3,952 2 46
SimpleProperties 3,948 2 46
Iterator 3,949 2 25
BasicIO 1,679 12 360
SDList 3,951 2 12
Hashtable 1,375 17 189
SimpleVector 1,259 21 247
MyDictionary 14,136 0 3
Operators 14,221 0 15
Predicates 14,222 0 15
BasicLinkedList 2,818 4 20
DoubleLinkedList 3,250 3 21
TypeTraits 3,980 2 28
AVLTree 14,422 0 4
BinarySearchTree 14,423 0 4
BinaryTree 14,424 0 4
B+ Tree 14,425 0 4
B Tree 14,426 0 4
ColorManager 14,427 0 5
FenwickTree 14,428 0 4
HeapTree 14,429 0 4
InitializerList 1,379 18 217
IntervalTree 14,430 0 4
KDimensionalTree 14,431 0 4
MathLib 3,982 2 21
Map 2,726 1 38
MatrixMath 14,444 0 4
Numeric_Limits 3,983 2 25
OCTree 14,432 0 4
QuadTree 14,436 0 4
Queue 14,437 0 5
RedBlackTree 14,438 0 4
RTree 14,439 0 4
SegmentTree 14,440 0 4
Stack 14,441 0 6
SuffixTree 14,442 0 4
TrieTree 14,443 0 4
Optional [NEW] 0 0
Variant [NEW] 0 0
ExtremeVariant [NEW] 0 0

Information about this document

Status Meaning
[TESTED] Library has been tested and found to operate as intended (newer updates may not actually be tested)
[PARTIALLY-TESTED] Library has had some tests completed, the library could still be unstable
βœ… [MOSTLY-TESTED] βœ… Similar to partially tested, most functions have been tested. (main functions)
[UNTESTED] If I have to explain this to you, you got problems ;) Library has not been tested
❌ [UNPUBLISHED] ❌ The library is only on github. This is usually a temporary tag.
[DEVELOPMENT-COMPLETE] I have no intention to further develop library. (will fix bugs)
πŸ”₯ [ACTIVE-DEVELOPMENT] πŸ”₯ Actively working on library. Enhancements, bug fixes, ext.
πŸ›  [PASSIVE-DEVELOPMENT] πŸ›  Resevered for libraries that I have plans for, but am not working on currently
🚧 [DEVELOPMENT-PAUSED] 🚧 Development is no longer a priority, and the Development will not be progressed
🚧 [TESTING-PAUSED] 🚧 Testing is no longer a priority, and at this time will not be continued.
πŸ† [STABLE] πŸ† Library should work as intended and shouldnt give any trouble.
[CONSIDERED-STABLE] Library hasnt been fully tested, but the vast majority of the functions seem to work fine with no issues
⚠ [SEMI-STABLE] ⚠ Library has some aspects that are stable, but others that may not be stable
[UNSTABLE] Testing is showing that a library is not working properly. Even though a library is not labled with this, please consider all libraries on the Development-Branch to be Unstable. Some libraries on main may also be unstable if it had to be merged early.
[REIMPLEMENTED] Library was rebuilt from the ground up. Functionality may have changed
[TESTING-NOT-NECESSARY] Library is Virtual and has no concrete implementation
[ON-PAR] Means the Arduino Current Version and the Platformio Current Version are the same. This is not always true, so this label is used to show that they are currently in sync. Absense of this label should be taken as the library versions are not identical.
🚧 [IN-PROGRESS] 🚧 Essentially this and Active development are the same. However this means this library is priority

About

This repository contains C++ and Arduino Libraries that are lightweight and easy to use. All libraries were created/mimicked by me and chatgpt.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •