https://github.com/openmainframeproject/tersedecompress
TerseDecompress is a java program that can be used to decompress files which have been previously compressed on an IBM Mainframe using the TERSE / AMATERSE program (on IBM z/OS or IBM z/VM).
https://github.com/openmainframeproject/tersedecompress
Last synced: about 2 months ago
JSON representation
TerseDecompress is a java program that can be used to decompress files which have been previously compressed on an IBM Mainframe using the TERSE / AMATERSE program (on IBM z/OS or IBM z/VM).
- Host: GitHub
- URL: https://github.com/openmainframeproject/tersedecompress
- Owner: openmainframeproject
- License: apache-2.0
- Created: 2019-02-07T13:14:54.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2025-01-09T14:38:20.000Z (5 months ago)
- Last Synced: 2025-04-15T01:51:49.768Z (about 2 months ago)
- Language: Java
- Size: 74.2 KB
- Stars: 22
- Watchers: 6
- Forks: 17
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Governance: GOVERNANCE.md
Awesome Lists containing this project
README
# tersedecompress
TerseDecompress is a java program that can be used to decompress files
which have been previously compressed on an IBM Mainframe
using the TERSE / AMATERSE program (on IBM z/OS or IBM z/VM).## Purpose & benefit ##
As java programs can virtually run on any platform / operating system
with a JVM, this java decompression program can be very useful if you
don't have access to an IBM mainframe but need to analyze or process a
file which had been compressed on a IBM mainframe using TERSE on IBM z/OS.
With this java version of TerseDecompress, you can decompress those tersed
IBM Mainframe files on any workstation or laptop etc. that supports Java.## Updates ##
**Version 5: March 2021**
- Support for variable length binary records. Variable length records processed in binary mode will be prefixed with a 4 byte field in the same format as the IBM RDW i.e. 2 byte record length field (including RDW length, big-endian) followed by 2 bytes of zeros.
## How to run it ##
For execution, TerseDecompress needs a JVM runtime environment.
Usage:
```java -jar tersedecompress-5.0.0.jar [-b] tersed-file output-file```
Default mode is text mode, which will attempt EBCDIC -> ASCII conversion.
The **-b** flag turns on binary mode, no conversion will be attempted.
**Recommendation:** Use binary mode if possible. EBCDIC->ASCII conversion is not a lossless process, unless the data strictly contains only characters that are common to both code pages used for the translation, **and** the original data does not contain line ending characters.
## How to build it ##
To build tersedecompress you need the Java JDK and Apache Maven.
In the project directory (the directory containing **pom.xml**):
```mvn clean package```
## Unit Tests ##
The project contains unit tests to verify that the decompression is correct.
Due to the size of the test data, it is stored in a separate git repository and referenced via a submodule. The test data is not required to build tersedecompress, unless you want to run the unit tests.
The test data can be found here:
[https://github.com/openmainframeproject/tersedecompress-testdata](https://github.com/openmainframeproject/tersedecompress-testdata)Descriptions of the data are here:
[https://github.com/openmainframeproject/tersedecompress-testdata/tree/master/tests](https://github.com/openmainframeproject/tersedecompress-testdata/tree/master/tests)### Building with Unit Tests ###
1. Initialize (download) the submodule containing the test data:
```git submodule update --init```
2. Build with unit tests:
```mvn -DskipTests=false clean package```## How to report problems and get support/help ##
If you have a problem / need help with TerseDecompress.java, please create a GitHub issue.
There is also a Slack channel: [https://slack.openmainframeproject.org](https://slack.openmainframeproject.org) channel #tersedecompress