Skip to main content

The building block for decentralized media

Project description

Nucleus

Slack PRs Welcome CI codecov pdm-managed


NOTE! Nucleus is alpha-stage software. It means nucleus hasn't been security audited and programming APIs and data formats can still change.

Nucleus is a collection of low-level tools for media decentralization. It offers functionalities to make it easier to process, store, and distribute multimedia in a decentralized way.

The key features of Nucleus include:

  • Metadata harvesting
  • Multimedia processing
  • Multimedia storage
  • Metadata distribution
  • Web3 instruments

Nucleus follows a modular and layered design approach, consisting of the following layers:

  1. The Core: This layer contains the building block packages that have minimal or no external dependencies. Any dependencies within the core layer will be limited to other internal packages.

  2. The SDK: The SDK exposes the programming-level API to interact with the core functions in a safe and conformant way.

  3. The CLI and HTTP API: These components utilize the SDK to provide services through command-line interfaces (CLI) and HTTP API endpoints.

Summary

Nucleus proposes a sequence of steps (pipeline) for the processing and decentralization of multimedia:

  1. Harvesting: Collect metadata associated with the multimedia content.
  2. Processing: Performing media processing tasks.
  3. Storage: Store the processed content in the IPFS network.
  4. Expose: Distribute metadata through the IPFS ecosystem.
  5. Mint: Create metadata as NFTs (Non-Fungible Tokens).
  6. Retrieval: Retrieve and unmarshal metadata for further distribution.

The pipeline design follows the decoupling principle, allowing for flexible use cases. For example, the storage component can be optional if data is already stored on the IPFS network. Similarly, the mint component can be skipped if there is no need to create NFTs for the metadata. The processing component may also be unnecessary if the media is already prepared for storage.

The Retrieval component facilitates the retrieval and unmarshalling of metadata from IPFS ecosystem, which can then be distributed through various means. eg.OrbitDB, Gun, etc..

Installing

You can use pip to install nucleus with e.g.:

pip install nucleus-sdk

Before using nucleus, FFmpeg and IPFS must be installed.

  1. Check the official docs to install IPFS.
  2. There are a variety of ways to install FFmpeg, such as the official download links, or using your package manager of choice (e.g. sudo apt install ffmpeg on Debian/Ubuntu, brew install ffmpeg on OS X, etc.).

Examples

Development

Some available capabilities for dev support:

  • Install: make install
  • Tests: make test
  • Debug: make debug
  • Lint: make lint
  • Lint Fix: make format

Note: Please check Makefile for more capabilities.

Contributors ✨

Thanks goes to these wonderful people (emoji key):


phillmac

💻 📓 🤔 🚇

Mark Robert Henderson

💻 🤔

Echedenyan

🚇

This project follows the all-contributors specification. Contributions of any kind welcome!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nucleus_sdk-0.1a1.tar.gz (17.5 MB view details)

Uploaded Source

Built Distribution

nucleus_sdk-0.1a1-py3-none-any.whl (79.5 kB view details)

Uploaded Python 3

File details

Details for the file nucleus_sdk-0.1a1.tar.gz.

File metadata

  • Download URL: nucleus_sdk-0.1a1.tar.gz
  • Upload date:
  • Size: 17.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.6.1 CPython/3.10.6

File hashes

Hashes for nucleus_sdk-0.1a1.tar.gz
Algorithm Hash digest
SHA256 2cb480c6dcf314d7a082e84694208d7f0f66807a86c1ef3a698b69827a7b4416
MD5 a5ef042e4ca2f149ae2e94aae01b20a3
BLAKE2b-256 e94e341d68c4f5c7848fa0006783640e942483c614f5448eff768969c9740202

See more details on using hashes here.

File details

Details for the file nucleus_sdk-0.1a1-py3-none-any.whl.

File metadata

  • Download URL: nucleus_sdk-0.1a1-py3-none-any.whl
  • Upload date:
  • Size: 79.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.6.1 CPython/3.10.6

File hashes

Hashes for nucleus_sdk-0.1a1-py3-none-any.whl
Algorithm Hash digest
SHA256 c51cda7ac6e9e8f4b40f9dcc31b905a492c315880c015579ec8c5d5990778714
MD5 879a986e3a34717c46e979ad0190ad7f
BLAKE2b-256 8b927c332bc5ddf191f4ad2ed54fc25b0c0ae15cf7c4698838038059ff724fe4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page