-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Andrew Butler edited this page Feb 8, 2024
·
4 revisions
The Qommons library contains many different APIs and tools that I've had use for at some point.
It includes formal, fleshed-out, documented APIs like:
- The Lockable and Transactable APIs, which provide a specification for lockable and transactable structures
- Causable and Stamped
- BetterCollection and BetterMap
- The Qonfig configuration language
- Collection Adjustment
It also includes many utilities only thus-far documented in code, including:
- A simple but advanced CSV parser
- A serial JSON library that can parse and write JSON structures similar to the SAX API for XML.
- SimpleXMLParser, the parser used by the Qonfig language, that provides 100% complete traceability for every single piece of an XML document's content. This makes it possible, e.g., for error reporting to reference the exact spot in a source document where offending content was defined.
- ListenerList, an efficient, thread-safe collection-like structure designed for holding event listeners, supporting constant-time element removal and ConcurrentLinkedQueue-like functionality.
- An OSGi API for running applications built to the spec of eclipse's OSGi build system.
- Utilities to support randomized generative testing
- The BetterFile API, an alternative API to java.io.File that supports representing all of the following (and potentially more) transparently:
- Files on the local file system
- URL resources
- Entries in archive files (zip, tar, gzip)
- Remote resources accessed via SFTP
- Memory-based file-like structures in a directory-system-like hierarchy
- FileBackups, a utility for creating backups of a frequently-modified important file, such as a flat-file database or configuration file
- Code utilities, such as tuples, or interfaces parallel to Java's functional API that can throw exceptions
- A utility for configuring advanced command-line argument parsing
- The Colors class, containing constants for all HTML colors and more, plus utilities for parsing, representing, and modifying them
- Debugging utilities, such as LambdaUtils, which can easily create simple functional instances that print nicer and have some other nice properties
- Primes, a utility for generating the prime number sequence or factorizing integers
- ProgramTracker, a utility for tracking performance
- CircularByteBuffer and CircularCharBuffer, binary- and character-based utility classes which efficiently act as repositories of their format of data, providing implementations of standard java APIs to read or write their content (InputStream, OutputStream, Appendable, Reader, Writer)
- TimeUtils, a set of tools for parsing and representing dates and durations in flexible formats
- ElasticExecutor, a multi-threaded execution service
- QommonsTimer, a powerful and efficient utility for executing tasks periodically or for offloading tasks to a separate thread
And these are only the highlights.