Git Product home page Git Product logo

Comments (9)

giuseppe avatar giuseppe commented on August 28, 2024

thanks for the report. I'll take a look at it.

While currently available, the python bindings are not really used/supported at the moment, just out of curiosity, are you planning on using them?

from crun.

joaompinto avatar joaompinto commented on August 28, 2024

@giuseppe I don't have a "business" use case for it, but I would like to experiment more with container management, and I am more productive in Python, while most of the current container related tools/libraries are in Go. Because of this I have started a Python "pure" approach (https://github.com/joaompinto/pylibcontainer) but it stills needs a lot of work, and it is mostly a wrapper around kernel syscalls. It would make more sense to leverage the libcrun interface.

If there are no plans to have it widely maintained I will take ownership of the issue when I have some more spare time, I will need to revive my automake/autoconf/C development skils :)

I am not a big fan of some of "Docker" methods for building and distributing containers, podman/buildah are nice, but in the "Golang" domain, so in the long term, If I am able to produce minimal stable Pythons bindings I expect to provide some container management options to Python developers.

from crun.

rhatdan avatar rhatdan commented on August 28, 2024

Sounds cool. Any help from you @joaompinto Would be appreciated.

from crun.

joaompinto avatar joaompinto commented on August 28, 2024

Since Python2 will be EOL soon, would be acceptable to provide Python3 only bindings ?

from crun.

giuseppe avatar giuseppe commented on August 28, 2024

@joaompinto yes, we can use only python3

from crun.

joaompinto avatar joaompinto commented on August 28, 2024

I am thinking about the benefits vs effort of the work on this issue, taking in account that:

a) Distributing python packages with native library dependencies is tricky
b) Rewriting the crun (cli) specific features in Python provides little benefit
c) Many other "consumers" (e.g. podman ) are already using the binary runtime configuration

Are there some library features that might be interesting from a container management point of view that arenot available trough the "crun" CLI ?

from crun.

giuseppe avatar giuseppe commented on August 28, 2024

I've played slightly with them: https://github.com/giuseppe/oci-auto-capabilities/blob/master/oci-auto-capabilities.py but honestly I think there are not many benefits. The same script can be written using the Podman CLI (even if with less control on the kind of the capabilities).

The OCI runtime works at a low level and many importants parts like storage or networking are out of scope. This limits significantly what we can provide via the Python hooks.

from crun.

joaompinto avatar joaompinto commented on August 28, 2024

Based on this assessment I am closing this issue, I will create a new one for the removal the current python bindings configure option and related documentation.

I will do some more research for a better option for a Python framework, eventually similar to "libpod" but without the podman dependency. A thin runtime layer: python3 (stdlib) + python-libpod + runc binary.

from crun.

giuseppe avatar giuseppe commented on August 28, 2024

I don't think we need to remove the current ones. They can be useful if all you need is an OCI runtime.

from crun.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.