Comments (7)
There is no existing Go library that exposes the zlib API at the level we want to. The task isn't to create our own Go zlib library, but build an abstraction layer on top of the zlib API, so it's more Go-ish.
from soci-snapshotter.
Copying this relevant comment here:
We are still implicitly leaking details about the underlying implementation. This should be addressed in future PRs before we attempt to define a real gzip-neutral
interface
(that is, before we add Zstd support).
NewGzipIndex
andNewGzipIndexFromFile
would both be taking Readers if the underlying implementation were in native Go.- HasBits is an implementation detail of Gzip, and probably this implementation of the gzip-ztoc technology. So we should not be exposing this concept to the caller.
from soci-snapshotter.
Cf. #60
from soci-snapshotter.
I've seen a couple references to this issue (e.g. #80 (comment)) that imply that this is scheduled work, but I'm not totally sold that this is something we want to do.
Specifically, my concern is whether there is an existing go library that exposes gzip/inflate APIs at the level we need. If doing this means writing and maintaining our own inflate library in go, then I'm not sure it's worth it.
from soci-snapshotter.
In that case, can we reword the issue? The current description sounds like the end result is a project with no c dependencies.
from soci-snapshotter.
In that case, can we reword the issue? The current description sounds like the end result is a project with no c dependencies.
Updated the wording.
from soci-snapshotter.
We are using the soci-snapshotter in an existing lambda which is used to copy images from our on premise container registry to ecr.
The reliance on the gzip_zinfo c code causes issues for us testing and debugging our lambda code on developer desktops (Mac and Windows). To test at the moment we have to commit the code and wait for the code to be compiled and tested on our Linux based build servers.
Rewriting the c code in golang would enable us to speed up development and testing of any changes to our lambdas.
from soci-snapshotter.
Related Issues (20)
- [Bug] ImagePullBackoff when pulling an image from private ECR with SOCI Index being present. HOT 26
- [FEATURE] Support systemd socket activation for soci-snapshotter-grpc
- [Bug] Problem pushing image to registry using nerdctl HOT 3
- [Bug] Container Ephemeral storage limit is not enforced when using SOCI Snapshotter. HOT 3
- [Bug] Extracting binaries of 0.5.0 requires the use of ./ prefix
- [FEATURE] Centralize our CLI Documentation HOT 1
- [FEATURE] Don't make registry calls when content has completed fetching HOT 2
- [Bug] Max concurrent uploads flag is unused HOT 2
- [Doc] Document zInfo binary format and implementation details HOT 1
- [Bug] ECR reauthentication on 403 does not seem to work HOT 7
- Update registry container image to v3.0.0
- [Bug] TestFuseOperationFailureMetrics fails on ARM64 HOT 1
- Return errors when creating SpanManager
- Switch to Alpine base for container images in integration tests
- [FEATURE] Set image tag when pushing a Soci index and an image index
- [FEATURE] Update docs/makefile for `command not found` after `make install` HOT 2
- [Bug] sh.R leaves open pipes HOT 2
- [FEATURE] Clean up integration test artifacts
- [Bug] Incorrect formatting for digest in SOCI index remove
- [FEATURE] Add test for container starting without internet access
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from soci-snapshotter.