[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[task #16401] Submission of Assignment 02

From: Amasha
Subject: [task #16401] Submission of Assignment 02
Date: Thu, 20 Jul 2023 12:20:41 -0400 (EDT)


                 Summary: Submission of Assignment 02
                   Group: Savannah Administration
               Submitter: amasha
               Submitted: Thu 20 Jul 2023 04:20:39 PM UTC
         Should Start On: Thu 20 Jul 2023 12:00:00 AM UTC
   Should be Finished on: Sun 30 Jul 2023 12:00:00 AM UTC
                Category: Project Approval
                Priority: 5 - Normal
                  Status: None
                 Privacy: Public
        Percent Complete: 0%
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any
                  Effort: 0.00


Follow-up Comments:

Date: Thu 20 Jul 2023 04:20:39 PM UTC By: Amasha <amasha>
A new group has been registered at Savannah.
This group will remain inactive until a site admin approves
or discards the registration.

= Registration Administration =

Approving or discarding the registration must be done using the specific
[ Group
administration] page, accessible only to site
administrators logged in as superusers.

= Registration Details =

* Name: *Assignment 02*
* System Name:  *file-compressor*
* Type: non-GNU software and documentation
* License: GNU General Public License v3 or later (zlib Library:

The "File Compressor Utility" utilizes the zlib library (version 1.2.11) for
the gzip compression functionality. The zlib library is distributed under the
zlib license, which allows free use, modification, and distribution of the
library's source code or binary forms.
Sample File - 'sample.txt':

The sample input file used for demonstration purposes ('sample.txt') is
included in the project under the Creative Commons Attribution-ShareAlike 4.0
International License. The file's content is sourced from, and it is released under the aforementioned license.
Media Asset - 'logo.png':

The project includes a logo image ('logo.png'), which was obtained from The logo is licensed under the Creative Commons Attribution 3.0
Unported License. Please refer to the 'logo.png' file for specific licensing
Dual Licensing:

This project is dual-licensed under the GNU General Public License version 3
(GPLv3) and the MIT License. Users may select the license that best aligns
with their project requirements. Files in the 'src' directory are licensed
under GPLv3, while files in the 'utils' directory are licensed under the MIT
Public Domain Dedication:

The file 'utils/helper.c' is dedicated to the public domain under the CC0 1.0
Universal (CC0 1.0) Public Domain Dedication. Users are free to use, modify,
and distribute this file without any restrictions.)


== Description: ==
The "File Compressor Utility" is a command-line software designed to
efficiently compress files using the gzip algorithm. Written in the C
programming language and utilizing the zlib library, the utility offers a
high-performance solution for reducing the size of large files, thereby saving
storage space and facilitating faster data transfer.

Key Features:

Command-Line Interface: The utility is operated via a command-line interface,
allowing users to easily compress files without the need for a graphical user

Gzip Compression: The utility employs the gzip algorithm for data compression,
a widely-used method known for its high compression ratios and compatibility
with various file formats.

Multiple Compression Levels: Users can specify different compression levels
when compressing files, providing a balance between compression speed and
resulting file size.

Input and Output Flexibility: The utility supports compressing individual
files or entire directories, giving users the flexibility to compress single
or multiple items at once.

Zlib Library Integration: By leveraging the zlib library (version 1.2.11), the
utility ensures efficient and reliable gzip compression functionality.

Technical Implementation:

Data Compression Algorithm: The utility uses the gzip algorithm, a combination
of the DEFLATE algorithm and the LZ77 algorithm, to compress data.

Buffer Management: To optimize memory usage during compression, the utility
employs buffer management techniques to process data in manageable chunks.

Command-Line Parsing: The utility parses command-line arguments to determine
the compression options, input files, and output location.

Error Handling: Robust error handling is implemented to gracefully handle
exceptional scenarios during compression, such as invalid input files or
insufficient disk space.

File Format Specification: The utility generates compressed files in the gzip
file format, adhering to the file format's specifications for proper
decompression by compatible tools.

Performance Considerations:

Speed vs. Compression Ratio: The utility allows users to choose from different
compression levels, enabling them to prioritize speed or file size based on
their specific needs.

Multithreading (Optional): To further enhance performance, future iterations
of the utility may explore multithreading techniques for compressing multiple
files concurrently.

Memory Footprint: The utility is designed to minimize memory usage during
compression, ensuring efficient execution even on systems with limited

The "File Compressor Utility" offers a simple yet powerful solution for
compressing files using the gzip algorithm. Its command-line interface,
support for different compression levels, and integration with the zlib
library make it a versatile tool for managing file sizes and optimizing data

== Other Software Required: ==
zlib Library (Version 1.2.11):

The "File Compressor Utility" relies on the zlib library (version 1.2.11) for
its gzip compression functionality. The zlib library is used to perform
efficient data compression and decompression and is essential for the core
functionality of the utility.
Standard C Library (libc):

The utility makes use of standard C library functions for file input/output,
memory management, and other essential operations. The standard C library is
widely available on most platforms and is required for the proper functioning
of the utility.
Command-Line Arguments Parser (getopt):

To process command-line arguments and options, the utility uses the getopt
library. This library allows users to specify compression levels, input files,
and output locations through the command line.
(Optional) Threading Library (pthread):

While not currently utilized, the utility is designed to support
multithreading for concurrent compression of multiple files. If enabled during
compilation, the pthread library will be required to provide threading

== Tarball URL: ==


Reply to this item at:


Message sent via Savannah

reply via email to

[Prev in Thread] Current Thread [Next in Thread]