Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Yoclib Multibase

Yoclib Multibase Laravel Package

yocto/yoclib-multibase

A PHP library for Multibase encoding and decoding, enabling self-describing base-encoded strings with prefix handling. Suitable for IPFS, CID, and decentralized identifier tooling that needs consistent support across multiple base encodings.

View on GitHub
Deep Wiki
Context7

yoclib-multibase is a PHP implementation of the Multibase specification from the Multiformats project. It encodes and decodes data using self-describing base prefixes—such as base16, base32, base58btc, and base64—so every value carries a leading character that identifies its encoding, making data unambiguous and interoperable across IPFS, libp2p, and other decentralized systems.

  • Encode and decode with self-describing multibase prefixes
  • Supports common bases including base16, base32, base36, base58, and base64 variants
  • Simple, dependency-light API that integrates easily into PHP projects
  • Compatible with Multiformats and IPFS tooling
Frequently asked questions about Yoclib Multibase
What does yocto/yoclib-multibase actually do?
It is a single-purpose codec library that implements the Multibase specification from the Multiformats project. You give it a raw byte string and it returns a self-describing encoded string with a one-character prefix that identifies the base, such as base16, base32, base36, base58btc, or base64url, and it reverses that operation on decode. It sits alongside Multihash, Multicodec, and CID in the multiformats family. It does not do hashing, CID generation, or DID resolution itself.
How do I install yocto/yoclib-multibase in a Laravel application?
Install it with Composer using composer require yocto/yoclib-multibase. It is a framework-agnostic PSR-4 package, so no service provider registration or config publishing is required. Laravel's autoloader will pick up the classes immediately, and you can use them in controllers, jobs, or domain services right away. Pin the version in composer.json if you want protection against upstream changes.
Does this package need a Laravel service provider or configuration file?
No. The package has no Laravel awareness and no framework surface area, so it ships no service provider, facade, config file, or migrations. Integration is purely at the code level. If you want container injection, you write a thin service provider yourself that binds your own MultibaseCodec interface to an adapter wrapping this library.
Which Laravel and PHP versions are supported?
Because the package is Laravel-agnostic, it should install cleanly into Laravel 9, 10, and 11 as long as the PHP version satisfies the constraint declared in its composer.json. Check that constraint with composer show yocto/yoclib-multibase before committing, since Composer will refuse the install on an older PHP runtime. Also inspect the dependency tree for anything else that carries its own license or maintenance exposure.
Which Multibase encodings are supported, and do I need all of them?
The library aims for spec completeness across the Multibase prefixes, including base16, base32, base36, base58btc, and base64url variants. In practice roughly 95 percent of real-world usage is base58btc, base16, base32, and base64url, so confirm the specific prefixes your contract requires are covered correctly. If you only need one or two bases, a spec-complete dependency may be more than you need.
What license does yocto/yoclib-multibase use, and is GPL-3.0 a problem for a commercial Laravel app?
The package is licensed GPL-3.0, which is a copyleft license. Internal-only or pure-SaaS usage is generally tolerable, but a distributed Laravel application, an on-prem product, or a CLI shipped to customers may obligate you to release derivative source under GPL-3.0. Legal review is mandatory before merge, and for many product organizations this alone disqualifies the dependency.
Is yocto/yoclib-multibase production-ready, or is the adoption risk too high?
The code is recent and the maintainer is still touching it, but the adoption signal is near zero: roughly one star, no dependents, no bug-report corpus, and no Stack Overflow history. It is a single-maintainer project with no evident governance, no SECURITY.md, and no disclosure process, so a vulnerability or spec-drift bug becomes yours to fix. That does not make it unusable, but it means you are the first real user and should plan accordingly.
Are there alternatives to yocto/yoclib-multibase for PHP?
Yes. kornrunner/multibase is the most commonly cited alternative, and general-purpose encoding libraries such as the brick packages can cover parts of the surface. Because the API is small, an in-house implementation of the two or three bases you actually need is a genuinely low-cost option, on the order of a few hundred lines plus a test-vector suite. That route eliminates both the GPL-3.0 license risk and the bus-factor risk.
How should I integrate this package into a Laravel codebase cleanly?
Define a thin MultibaseCodec interface in your domain layer, write an adapter that implements it against this package, and optionally add a service provider to bind the interface in the container. Keep the package's types entirely inside the adapter so a future swap to another library or an in-house codec is a one-file change. Because the library is stateless with no I/O, config, or persistence, it introduces zero architectural disruption.
Does the package handle invalid prefixes, empty input, and the official Multibase test vectors?
The official multibase test vectors, including invalid-prefix and empty-input cases, are the benchmark you should verify against before committing. This package does not publicly document a test-vector compliance claim, so run the vectors yourself in a small prototype, or write a wrapper test suite that exercises each prefix you depend on. Treat edge-case behavior as something you validate rather than something you assume.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource