pyoci


Namepyoci JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryOCI-runtime spec represented as python objects.
upload_time2024-08-08 18:08:15
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # pyoci

[![image](https://img.shields.io/pypi/v/pyoci.svg)](https://pypi.python.org/pypi/pyoci)
[![image](https://img.shields.io/pypi/l/pyoci.svg)](https://pypi.python.org/pypi/pyoci)
[![image](https://img.shields.io/pypi/pyversions/pyoci.svg)](https://pypi.python.org/pypi/pyoci)

**What**: A library to define [OCI Runtime Specification](https://github.com/opencontainers/runtime-spec) compliant container instances.

**When**: When you need to run or modify a container at the lowest level, without containerd or docker/podman.

**Why**: The full OCI runtime spec can be quite large to read and even trickier to implement. This library saves you all the json-wrangling and validation, without abstracting any features away.

**How**: Under the hood, everything here is a msgpack Struct. These structs were generated from the original json-schema with help of [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) and then manually refactored by me.

#
**Pros**:
- Full control over the container.
- Compatible with many runtimes.
- Very lightweight[^1].

**Cons**:
- Requires low-level knowledge of how a container is constructed.
- Doesn't support dealing with images in any way (for now), you'll need to provide an already existing container root.
- Isn't well tested with runtimes (for now).

#

This is a low-level library. If you want to simply run a container, without configuring all the inner workings, i'd suggest [docker-py](https://github.com/docker/docker-py).

This library is runtime-agnostic, so it doesn't provide a way to actually run the container. You'll need to pass the definition to an appropriate runtime yourself.

Also, I want to say a huge thanks to koxudaxi and other contributors for the awesome code generator!

[^1]: Pyoci should be very fast and memory/resource efficent thanks to use of msgpack. The performance of actually running the container will depend on your provided runtime. However, since using a runtime directly involves much less abstraction than containerd/docker/etc, this approach should be more efficent overall.
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "pyoci",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": null,
    "author": null,
    "author_email": "hazyfossa <hazyfossa@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/da/ee/9518c91fa78c15ce8fc082581252b1bffe45091711a072c709fcc93a64ed/pyoci-0.1.0.tar.gz",
    "platform": null,
    "description": "# pyoci\n\n[![image](https://img.shields.io/pypi/v/pyoci.svg)](https://pypi.python.org/pypi/pyoci)\n[![image](https://img.shields.io/pypi/l/pyoci.svg)](https://pypi.python.org/pypi/pyoci)\n[![image](https://img.shields.io/pypi/pyversions/pyoci.svg)](https://pypi.python.org/pypi/pyoci)\n\n**What**: A library to define [OCI Runtime Specification](https://github.com/opencontainers/runtime-spec) compliant container instances.\n\n**When**: When you need to run or modify a container at the lowest level, without containerd or docker/podman.\n\n**Why**: The full OCI runtime spec can be quite large to read and even trickier to implement. This library saves you all the json-wrangling and validation, without abstracting any features away.\n\n**How**: Under the hood, everything here is a msgpack Struct. These structs were generated from the original json-schema with help of [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) and then manually refactored by me.\n\n#\n**Pros**:\n- Full control over the container.\n- Compatible with many runtimes.\n- Very lightweight[^1].\n\n**Cons**:\n- Requires low-level knowledge of how a container is constructed.\n- Doesn't support dealing with images in any way (for now), you'll need to provide an already existing container root.\n- Isn't well tested with runtimes (for now).\n\n#\n\nThis is a low-level library. If you want to simply run a container, without configuring all the inner workings, i'd suggest [docker-py](https://github.com/docker/docker-py).\n\nThis library is runtime-agnostic, so it doesn't provide a way to actually run the container. You'll need to pass the definition to an appropriate runtime yourself.\n\nAlso, I want to say a huge thanks to koxudaxi and other contributors for the awesome code generator!\n\n[^1]: Pyoci should be very fast and memory/resource efficent thanks to use of msgpack. The performance of actually running the container will depend on your provided runtime. However, since using a runtime directly involves much less abstraction than containerd/docker/etc, this approach should be more efficent overall.",
    "bugtrack_url": null,
    "license": null,
    "summary": "OCI-runtime spec represented as python objects.",
    "version": "0.1.0",
    "project_urls": {
        "Homepage": "https://github.com/hazyfossa/pyoci",
        "Issues": "https://github.com/hazyfossa/pyoci/issues"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5b08f045202a624cdbb565248cba7015ee4c3dc4181f34caeb84f4d59f4543d6",
                "md5": "5ff463da610903fafba40625421457ca",
                "sha256": "2aff74a1b2246c2fc29a689da0920fb8d02d890fe79679b3776c7d9f2ff5a3f8"
            },
            "downloads": -1,
            "filename": "pyoci-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5ff463da610903fafba40625421457ca",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 11778,
            "upload_time": "2024-08-08T18:08:11",
            "upload_time_iso_8601": "2024-08-08T18:08:11.146263Z",
            "url": "https://files.pythonhosted.org/packages/5b/08/f045202a624cdbb565248cba7015ee4c3dc4181f34caeb84f4d59f4543d6/pyoci-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "daee9518c91fa78c15ce8fc082581252b1bffe45091711a072c709fcc93a64ed",
                "md5": "cbe83b8801d0cf895fb8768ab1b1bb21",
                "sha256": "a01b2d884f70b13bee4fdf22fd7c246f6ab6c91e22bc0f8d972bd542f999390f"
            },
            "downloads": -1,
            "filename": "pyoci-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "cbe83b8801d0cf895fb8768ab1b1bb21",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 9636,
            "upload_time": "2024-08-08T18:08:15",
            "upload_time_iso_8601": "2024-08-08T18:08:15.894427Z",
            "url": "https://files.pythonhosted.org/packages/da/ee/9518c91fa78c15ce8fc082581252b1bffe45091711a072c709fcc93a64ed/pyoci-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-08 18:08:15",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "hazyfossa",
    "github_project": "pyoci",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "pyoci"
}
        
Elapsed time: 0.54121s