From ef66534e872b8567f3e009cddd7ccb54f355b153 Mon Sep 17 00:00:00 2001 From: Martin Michelsen Date: Sat, 22 Feb 2025 19:52:54 -0800 Subject: [PATCH] update readme --- README | 28 ---------------------------- README.md | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 28 deletions(-) delete mode 100644 README create mode 100644 README.md diff --git a/README b/README deleted file mode 100644 index 570294c..0000000 --- a/README +++ /dev/null @@ -1,28 +0,0 @@ -Phosg is a basic C++ wrapper library around some common C routines. - -A short summary of its contents: -- Byteswapping and encoding functions (base64, rot13) -- Directory listing, smart-pointer fopen and stat, file and path manipulation -- Hash functions (fnv1a64, sha1, sha256, md5) -- Basic image manipulation/drawing -- JSON (de)serialization -- Network helpers (IP address parsing/formatting, listen/connect sockets) -- OS random data sources -- Process utilities (list processes, name <> PID mapping, subprocess execution) -- Time conversions -- std::string helpers like printf, split, time/size formatting, etc. -- 2D, 3D, 4D vectors and basic vector math -- KD-tree and LRU set data structures - -Phosg also includes an executable (jsonformat) that reformats JSON. - -Building & installing on macOS, Linux, or Windows (in a Cygwin bash shell): -- Install CMake, zlib (zlib-devel on Cygwin), and Python 3. -- `cmake .` -- `make` -- `make test` -- `sudo make install` - -The Windows build does not have continuous integration, so I may accidentally -break it and not know for a while. Feel free to file a GitHub issue if it -doesn't work. diff --git a/README.md b/README.md new file mode 100644 index 0000000..646cb6a --- /dev/null +++ b/README.md @@ -0,0 +1,35 @@ +# phosg + +phosg is a basic C++ wrapper library around some common C routines. + +A short summary of its contents: +* Byteswapping and encoding functions (base64, rot13) +* Integer types with explicit endianness and transparent byteswapping +* Directory listing, smart-pointer fopen and stat, file and path manipulation +* Hash functions (fnv1a64, fnv1a32, sha1, sha256, md5) +* Basic image manipulation/drawing +* JSON (de)serialization +* Network helpers (IP address parsing/formatting, socket listen and connect functions) +* Functions for getting random data from the OS +* Process utilities (list processes, name <> PID mapping, subprocess execution) +* Time conversions +* std::string helpers like printf, split/join, time and size formatting, etc. +* 2D, 3D, and 4D vectors and basic vector math +* KD-tree and LRU set data structures + +This project also includes a few simple executables: +* **jsonformat**: Parses the input JSON and either minimizes it (with --compress) or reformats it for human readability (with --format). +* **bindiff**: Shows the differing bytes between two binary files in a colored hex/ASCII view. This just does a direct comparison of the two files byte for byte; it doesn't run any e.g. edit-distance algorithm (yet). +* **parse-data**: Parses the data format used by `phosg::parse_data_string` and outputs the result. +* **phosg-png-conv**: Converts the input image (in any format that `phosg::Image` can load) to a PNG image. + +## Building + +Building & installing on macOS, Linux, or Windows (in a Cygwin bash shell): +* Install CMake and zlib (zlib-devel on Cygwin). +* `cmake .` +* `make` +* `make test` +* `sudo make install` + +The Windows build does not have continuous integration, so I may accidentally break it and not know for a while. Please file a GitHub issue if it doesn't work.