You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
are a well-known mechanism to identify abstract or phyiscal resources and extension authors are
1617
-
encouraged to explore further documentation on which identifiers might best express their intent.
1587
+
- ``foo/bar``
1588
+
- ``foo:bar``
1618
1589
1619
-
Aware that not all extension developers will want to immediately register a name,
1620
-
the goal of using URI identifiers is to provide a large and flexible namespace which
1621
-
balances the needs of developers building new extensions with a extensible mechanism
1622
-
which the Zarr community can make use of in the years to come.
1623
-
1624
-
URLs (`Uniform Resource Locators <https://en.wikipedia.org/wiki/URL>`_) are one class of URIs which
1625
-
provide a mechanism for resolving resources.
1626
-
In previous versions of the v3 spec, the name of an extension was required to
1627
-
be a URI that dereferences to a human-readable codec specification, i.e. a URL.
1628
-
That is now discouraged for new extensions, though, for backwards compatibility
1629
-
with existing extensions, URLs names are still permitted.
1630
-
1631
-
Instead, new unregistered extension names SHOULD use the [Tag URI scheme](https://datatracker.ietf.org/doc/html/rfc4151).
1632
-
The Tag URI scheme has four principal requirements:
1633
-
> - Identifiers are likely to be unique across space and time, and come from a practically inexhaustible supply.
1634
-
> - Identifiers are relatively convenient for humans to mint (create), read, type, remember etc.
1635
-
> - No central registration is necessary, at least for holders of domain names or email addresses; and there is negligible cost to mint each new identifier.
1636
-
> - The identifiers are independent of any particular resolution scheme.
1637
-
1638
-
These requirements are aligned well with the needs of Zarr extension developers.
1639
-
1640
-
An example of a Tag URI for a Zarr extension is `tag:[email protected],2025-03:experimental-new-dtype`.
1590
+
.. note::
1591
+
In previous versions of the v3 spec, the name of an extension was required
1592
+
to be a URI. That is now discouraged for new extensions, though, for
1593
+
backwards compatibility with existing extensions, URIs names are still
1594
+
permitted.
1641
1595
1642
1596
.. _extension-guidance:
1643
1597
@@ -1647,26 +1601,6 @@ Guidance for extension authors
1647
1601
*This section is non-normative and provides assistance for the authors of
1648
1602
extensions, especially those who are just getting started.*
1649
1603
1650
-
Recognizing that there are diverse considerations in choosing an extension
1651
-
name, guidance is provided below based on generic scenarios. Extension authors
1652
-
who are still unsure of how best to choose a name are welcome to open an issue
1653
-
on the zarr-specs repository.
1654
-
1655
-
* **Local development**: Authors looking to define a name for local development
1656
-
purposes should prefix their extensions with ``urn:x-``. This prefix defines
1657
-
an "experimental" name. As such an extension matures, authors might consider
1658
-
registering a new name for it. Implementations should check both for the
1659
-
unregistered as well as the registered named.
1660
-
1661
-
* **Proprietary extensions**: Authors looking to create proprietary extensions
1662
-
for internal, non-public use are encouraged to use a Tag URI. For example
1663
-
``tag:mycompany.com,2025-03-27:top-secret``.
1664
-
1665
-
* **Complete opaqueness**: Authors looking for a prefix which is communicates
1666
-
*nothing* to implementations MAY use the prefix ``urn:uuid:...`` following by
1667
-
following by a valid UUID (`Universally Unique Identifier
0 commit comments