Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use camlzip package to implement a ZipStore. #90

Merged
merged 3 commits into from
Jan 25, 2025
Merged

Use camlzip package to implement a ZipStore. #90

merged 3 commits into from
Jan 25, 2025

Conversation

zoj613
Copy link
Owner

@zoj613 zoj613 commented Jan 25, 2025

After recently reading the licensing terms camlzip, I realized that although it is licensed under LGPL, it contains a special exception that allows library authors to link to camlzip without being bound to the licensing terms of LGPL. The exception reads:

As a special exception to the GNU Lesser General Public License, you
may link, statically or dynamically, a "work that uses the Library" with
a publicly distributed version of the Library to produce an executable
file containing portions of the Library, and distribute that executable
file under terms of your choice, without any of the additional requirements
listed in clause 6 of the GNU Lesser General Public License.

I was initially not aware of this exception in the license and that drove the decision to implement ZipStore using zipc (which reads an entire zip archive into memory). This commit replaces zipc with camlzip and as a result re-works the ZipStore implementation.

After recently reading the licensing terms `camlzip`, I realized that
although it is licensed under LGPL, it contains a special exception that
allows library authors to link to camlzip without being bound to the
licensing terms of LGPL. The exception reads:

    As a special exception to the GNU Lesser General Public License, you
    may link, statically or dynamically, a "work that uses the Library" with
    a publicly distributed version of the Library to produce an executable
    file containing portions of the Library, and distribute that executable
    file under terms of your choice, without any of the additional requirements
    listed in clause 6 of the GNU Lesser General Public License.

I was initially not aware of this exception in the license and that
drove the decision to implement ZipStore using `zipc` (which reads an
entire zip archive into memory). This commit replaces `zipc` with
`camlzip` and as a result re-works the `ZipStore` implementation.
@zoj613 zoj613 added storage related to storage refactoring I/O relating to I/O operations and concurrency. labels Jan 25, 2025
@zoj613 zoj613 force-pushed the camlzip branch 3 times, most recently from e41e218 to f13a1c0 Compare January 25, 2025 20:45
Copy link

codecov bot commented Jan 25, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 98.89%. Comparing base (22bd73a) to head (4079b74).
Report is 3 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #90      +/-   ##
==========================================
+ Coverage   98.52%   98.89%   +0.37%     
==========================================
  Files          13       13              
  Lines        1555     1545      -10     
==========================================
- Hits         1532     1528       -4     
+ Misses         23       17       -6     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@zoj613 zoj613 merged commit e4d93f7 into main Jan 25, 2025
4 checks passed
@zoj613 zoj613 deleted the camlzip branch January 25, 2025 22:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
I/O relating to I/O operations and concurrency. refactoring storage related to storage
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant