Skip to content
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:

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.

Clone this wiki locally