/ofxIO

A collection of I/O core utils including a directory watcher, file filters and ordering, compression and more.

Primary LanguageCOtherNOASSERTION

ofxIO

Description

A collection of I/O core utils.

Features

  • ofEvent-based Directory Watcher
    • Watch for changes in your directories.
    • NOTE: Poco::DirectoryWatcher was added in Poco 1.5+. These files are included for backward compatibility.
  • File filters.
  • Compression
    • Zip, deflate, gzip, snappy, LZ4, brotli
    • Encoding.
      • COBS, SLIP, Hex Binary, Base64, etc.
  • ByteBuffer
    • Tools for interacting with raw byte buffers.
    • ByteBuffer streams.
    • ByteBufferReader.
    • ByteBufferWriter.
    • ByteBufferStream.
  • Recursive File Listing Poco::RecursiveDirectoryIterator
    • List files and folders inside of directories.
    • Use custom file filters to return relevant results.
      • NOTE: Poco::RecursiveDirectoryIterator was added in Poco 1.6+. These files are included under the ofxIO namespace for backward compatibility.
  • Correct alphanumeric filename ordering

Getting Started

To get started, generate the example project files using the openFrameworks Project Generator.

Documentation

API documentation can be found here.

Requirements

  • ofxPoco (included with openFrameworks)

Build Status

Linux, macOS Build Status

Visual Studio, MSYS Build status

Compatibility

The stable branch of this repository is meant to be compatible with the openFrameworks stable branch, which corresponds to the latest official openFrameworks release.

The master branch of this repository is meant to be compatible with the openFrameworks master branch.

Some past openFrameworks releases are supported via tagged versions, but only stable and master branches are actively supported.

Versioning

This project uses Semantic Versioning, although strict adherence will only come into effect at version 1.0.0.

Licensing

See LICENSE.md

Contributing

Check out the Help Wanted tag in the issues section for specific ideas or propose your own new ideas.

Pull Requests are always welcome, so if you make any improvements please feel free to float them back upstream :)

  1. Fork this repository.
  2. Create your feature branch (git checkout -b my-new-feature).
  3. Commit your changes (git commit -am 'Add some feature').
  4. Push to the branch (git push origin my-new-feature).
  5. Create new Pull Request.