CID (Content IDentifier)
------------------------
.. image:: https://img.shields.io/pypi/v/py-multiformats-cid.svg
:target: https://pypi.python.org/pypi/py-multiformats-cid
What is CID ?
=============
`CID <https://github.com/multiformats/cid>`_ is a format for referencing content in distributed information systems,
like `IPFS <https://ipfs.io>`_.
It leverages `content addressing <https://en.wikipedia.org/wiki/Content-addressable_storage>`_,
`cryptographic hashing <https://simple.wikipedia.org/wiki/Cryptographic_hash_function>`_, and
`self-describing formats <https://github.com/multiformats/multiformats>`_.
It is the core identifier used by `IPFS <https://ipfs.io>`_ and `IPLD <https://ipld.io>`_.
CID is a self-describing content-addressed identifier.
It uses cryptographic hashes to achieve content addressing.
It uses several `multiformats <https://github.com/multiformats/multiformats>`_ to achieve flexible self-description,
namely `multihash <https://github.com/multiformats/multihash>`_ for hashes,
`multicodec <https://github.com/multiformats/multicodec>`_ for data content
types, and `multibase <https://github.com/multiformats/multibase>`_ to encode the CID itself into strings.
Sample Usage
============
.. code-block:: python
>>> from multiformats_cid import make_cid
>>> make_cid('QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4')
CIDv0(version=0, codec=dag-pb, multihash=b"\x12 \xb9M'\xb9\x93M>\x08\xa5.R\xd7\xda}\xab\xfa\xc4\x84..")
>>> cid = make_cid('QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4')
>>> print(cid.version, cid.codec, cid.multihash)
>>> print(cid.encode())
QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4
>>> str(cid)
'QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4'
Installation
============
Stable release
~~~~~~~~~~~~~~
To install *py-multiformats-cid*, run this command in your terminal:
.. code-block:: console
$ pip install py-multiformats-cid
This is the preferred method to install CID, as it will always install the most recent stable release.
If you don't have `pip`_ installed, this `Python installation guide`_ can guide
you through the process.
.. _pip: https://pip.pypa.io
.. _Python installation guide: http://docs.python-guide.org/en/latest/starting/installation/
From sources
~~~~~~~~~~~~
The sources for *py-multiformats-cid* can be downloaded from the `Github repo`_.
You can either clone the public repository:
.. code-block:: console
$ git clone https://github.com/pinnaculum/py-multiformats-cid
Or download the `tarball`_:
.. code-block:: console
$ curl -OL https://github.com/pinnaculum/py-multiformats-cid/tarball/master
Once you have a copy of the source, you can install it with:
.. code-block:: console
$ python setup.py install
.. _Github repo: https://github.com/pinnaculum/py-multiformats-cid
.. _tarball: https://github.com/pinnaculum/py-multiformats-cid/tarball/master
Other info
==========
* Free software: MIT license
* Documentation: https://py-multiformats-cid.readthedocs.io.
* Python versions: 3.7, 3.8, 3.9, 3.10
History
-------
0.4.4 (2022-11-23)
==================
* py.typed in package_data
0.4.3 (2022-11-19)
==================
* Add typing hints: contribution from @bh2smith
* Add CI workflow
0.4.2 (2022-10-31)
==================
* Transition release to make mypy happy
0.4.0 (2022-10-31)
==================
* Rename py-cid to py-multiformats-cid (@pinnaculum)
* remove crazy version range limits for dependencies which cause major headaches
for downstream projects with multiple confluent indirect dependencies on this library
0.2.1 (2018-10-20)
==================
* Fix edge cases with multibase and multihash decoding
* Added hypothesis tests while verifying CIDs
0.1.5 (2018-10-12)
==================
* Handle the case where an incorrect base58 encoded value is provided to `make_cid`
0.1.0 (2017-09-05)
==================
* First release on PyPI.
Raw data
{
"_id": null,
"home_page": "https://github.com/pinnaculum/py-multiformats-cid",
"name": "py-multiformats-cid",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"keywords": "cid",
"author": "Dhruv Baldawa",
"author_email": "dhruv@dhruvb.com",
"download_url": "",
"platform": null,
"description": "\nCID (Content IDentifier)\n------------------------\n\n.. image:: https://img.shields.io/pypi/v/py-multiformats-cid.svg\n :target: https://pypi.python.org/pypi/py-multiformats-cid\n\nWhat is CID ?\n=============\n\n`CID <https://github.com/multiformats/cid>`_ is a format for referencing content in distributed information systems,\nlike `IPFS <https://ipfs.io>`_.\nIt leverages `content addressing <https://en.wikipedia.org/wiki/Content-addressable_storage>`_,\n`cryptographic hashing <https://simple.wikipedia.org/wiki/Cryptographic_hash_function>`_, and\n`self-describing formats <https://github.com/multiformats/multiformats>`_.\n\nIt is the core identifier used by `IPFS <https://ipfs.io>`_ and `IPLD <https://ipld.io>`_.\n\nCID is a self-describing content-addressed identifier.\n\nIt uses cryptographic hashes to achieve content addressing.\n\nIt uses several `multiformats <https://github.com/multiformats/multiformats>`_ to achieve flexible self-description,\nnamely `multihash <https://github.com/multiformats/multihash>`_ for hashes,\n`multicodec <https://github.com/multiformats/multicodec>`_ for data content\ntypes, and `multibase <https://github.com/multiformats/multibase>`_ to encode the CID itself into strings.\n\nSample Usage\n============\n\n.. code-block:: python\n\n >>> from multiformats_cid import make_cid\n >>> make_cid('QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4')\n CIDv0(version=0, codec=dag-pb, multihash=b\"\\x12 \\xb9M'\\xb9\\x93M>\\x08\\xa5.R\\xd7\\xda}\\xab\\xfa\\xc4\\x84..\")\n\n >>> cid = make_cid('QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4')\n >>> print(cid.version, cid.codec, cid.multihash)\n\n >>> print(cid.encode())\n QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4\n\n >>> str(cid)\n 'QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4'\n\n\nInstallation\n============\n\nStable release\n~~~~~~~~~~~~~~\n\nTo install *py-multiformats-cid*, run this command in your terminal:\n\n.. code-block:: console\n\n $ pip install py-multiformats-cid\n\nThis is the preferred method to install CID, as it will always install the most recent stable release.\n\nIf you don't have `pip`_ installed, this `Python installation guide`_ can guide\nyou through the process.\n\n.. _pip: https://pip.pypa.io\n.. _Python installation guide: http://docs.python-guide.org/en/latest/starting/installation/\n\nFrom sources\n~~~~~~~~~~~~\n\nThe sources for *py-multiformats-cid* can be downloaded from the `Github repo`_.\n\nYou can either clone the public repository:\n\n.. code-block:: console\n\n $ git clone https://github.com/pinnaculum/py-multiformats-cid\n\nOr download the `tarball`_:\n\n.. code-block:: console\n\n $ curl -OL https://github.com/pinnaculum/py-multiformats-cid/tarball/master\n\nOnce you have a copy of the source, you can install it with:\n\n.. code-block:: console\n\n $ python setup.py install\n\n\n.. _Github repo: https://github.com/pinnaculum/py-multiformats-cid\n.. _tarball: https://github.com/pinnaculum/py-multiformats-cid/tarball/master\n\nOther info\n==========\n\n* Free software: MIT license\n* Documentation: https://py-multiformats-cid.readthedocs.io.\n* Python versions: 3.7, 3.8, 3.9, 3.10\n\n\nHistory\n-------\n\n0.4.4 (2022-11-23)\n==================\n\n* py.typed in package_data\n\n0.4.3 (2022-11-19)\n==================\n\n* Add typing hints: contribution from @bh2smith\n* Add CI workflow\n\n0.4.2 (2022-10-31)\n==================\n\n* Transition release to make mypy happy\n\n0.4.0 (2022-10-31)\n==================\n\n* Rename py-cid to py-multiformats-cid (@pinnaculum)\n* remove crazy version range limits for dependencies which cause major headaches\n for downstream projects with multiple confluent indirect dependencies on this library\n\n0.2.1 (2018-10-20)\n==================\n\n* Fix edge cases with multibase and multihash decoding\n* Added hypothesis tests while verifying CIDs\n\n0.1.5 (2018-10-12)\n==================\n\n* Handle the case where an incorrect base58 encoded value is provided to `make_cid`\n\n\n0.1.0 (2017-09-05)\n==================\n\n* First release on PyPI.\n",
"bugtrack_url": null,
"license": "MIT license",
"summary": "Self-describing content-addressed identifiers for distributed systems",
"version": "0.4.4",
"project_urls": {
"Homepage": "https://github.com/pinnaculum/py-multiformats-cid"
},
"split_keywords": [
"cid"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "1a27aa30afa228aedb4789e500700f81798a03322d11f377af4e9e282b1fc6f6",
"md5": "36cd814f765cbb3bab64f79654624a1e",
"sha256": "83f6c3109ed56664799c7367703a68d1724b1e9bd79b45c8935c77660560d1dd"
},
"downloads": -1,
"filename": "py_multiformats_cid-0.4.4-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "36cd814f765cbb3bab64f79654624a1e",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=3.6",
"size": 7329,
"upload_time": "2022-11-23T18:42:57",
"upload_time_iso_8601": "2022-11-23T18:42:57.515863Z",
"url": "https://files.pythonhosted.org/packages/1a/27/aa30afa228aedb4789e500700f81798a03322d11f377af4e9e282b1fc6f6/py_multiformats_cid-0.4.4-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-11-23 18:42:57",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "pinnaculum",
"github_project": "py-multiformats-cid",
"travis_ci": true,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "py-multiformats-cid"
}