The NAVFoundation project is a collection of libraries for working with AMX devices. It's purpose is to provide a base for building NetLinx applications using modern programming techniques and patterns.
It builds on top of the NetLinx standard library to provide a set of higher level functions and utilities that are commonly used and taken for granted in other modern languages.
It's feature rich and written in pure NetLinx.
- Key Features ✨
- Installation ⚡
- Documentation 📄
- Libraries 📚
- Support ❓
- Team ⚽
- Contributors ✨
- LICENSE ⚖️
- Modern, object-oriented approach to NetLinx programming
- Comprehensive utility libraries for common tasks
- Well-tested and production-ready components
- Consistent API design across all modules
- Extensive error handling and logging capabilities
This library can be installed using Scoop.
# If you don't have sudo installed - Required to create symlinks in the AMX directory
scoop install gsudo
# Add the Norgate-AV AMX bucket
scoop bucket add norgateav-amx https://github.com/Norgate-AV/scoop-norgateav-amx
# Install NAVFoundation.Amx
sudo scoop install navfoundation-amxTo use the NAVFoundation.Amx libraries in your NetLinx project, simply include the desired library files in your project.
To use the StringUtils library, you would include it as follows:
#include 'NAVFoundation.StringUtils.axi'To use the ArrayUtils library, you would include it as follows:
#include 'NAVFoundation.ArrayUtils.axi'For more detailed guides and documentation, please refer the README.md files in each library folder.
- Core
- Provides a set of core constants, types, and functions for AMX programming.
- ArrayUtils
- Provides utility functions for working with arrays in AMX.
- Assert
- Provides assertion functions for testing and debugging.
- BinaryUtils
- Provides functions for binary data manipulation and conversion.
- Cryptography
- Provides cryptographic functions and utilities for secure data handling.
- CsvUtils
- Provides functions for parsing and generating CSV data.
- DateTimeUtils
- Provides utility functions for date and time manipulation.
- Encoding
- Provides functions for encoding and decoding data in various formats.
- Enova
- Provides functions for interacting with Enova switchers.
- ErrorLogUtils
- Provides functions for error logging and handling.
- Figlet
- Provides functions for generating ASCII art text using FIGlet fonts.
- FileUtils
- Provides utility functions for file operations and management.
- HashTable
- Provides a hash table implementation for key-value storage.
- HttpUtils
- Provides functions for HTTP requests and responses.
- IniUtils
- Provides functions for parsing and working with INI configuration files.
- Int64
- InterModuleApi
- Jsmn
- Provides a JSON parser for AMX.
- Json
- Provides functions for working with JSON data.
- Jwt
- Provides functions for working with JSON Web Tokens (JWT).
- List
- Provides an array-based list implementation.
- LogicEngine
- Math
- Provides mathematical functions and utilities.
- McpBase
- ModuleBase
- NetUtils
- Provides network-related utility functions.
- NtpUtils
- Provides functions for working with NTP (Network Time Protocol).
- PathUtils
- Provides utility functions for file path manipulation.
- Queue
- Provides an array-based queue implementation.
- Regex
- Provides regular expression matching and manipulation functions.
- Redis
- RmsBase
- SnapiHelpers
- Provides helper functions for SNAPI communication.
- SocketUtils
- Provides functions for socket communication.
- Stack
- Stopwatch
- Provides a stopwatch utility for timing operations.
- StringUtils
- Provides utility functions for string manipulation.
- TimelineUtils
- Provides functions for working with timelines.
- Toml
- Provides functions for parsing and working with TOML configuration files.
- Tui
- UIUtils
- Url
- Provides functions for URL manipulation and encoding.
- WebSocket
- Provides a WebSocket client implementation for AMX.
- Xml
- Provides functions for working with XML data.
- Yaml
- Provides functions for working with YAML data.
If you have any questions or issues, please open an issue on the GitHub repository.
This project is maintained by the following person(s) and a bunch of awesome contributors.
Damien Butt |
Thanks go to these awesome people (emoji key):
This project follows the all-contributors specification.
Contributions of any kind are welcome!
Check out the contributing guide for more information.
