
Reverse domain name notation (or reverse-DNS) is a naming convention for components, packages, types or file names used by a programming language, system or framework. Reverse-DNS strings are based on registered domain names, with the order of the components reversed for grouping purposes. For example, if a company making the product "MyProduct" has the
domain name
In the Internet, a domain name is a string that identifies a realm of administrative autonomy, authority, or control. Domain names are often used to identify services provided through the Internet, such as websites, email services, and more. ...
example.com
, they could use the reverse-DNS string
com.example.MyProduct
as an identifier for that product. Reverse-DNS names are a simple way of eliminating
namespace collisions, since any registered domain name is globally unique to its owner (with
alt roots making exceptions to this rule possible but unlikely).
History
The first appearance of reversed DNS strings predated the Internet domain name standards. The UK Joint Academic Networking Team (
JANET
Janet may refer to:
Names
* Janet (given name)
Surname
* Charles Janet (1849–1932), French engineer, inventor and biologist, known for the Left Step periodic table
* Jules Janet (1861–1945), French psychologist and psychotherapist
* Maur ...
) used this order in its
Name Registration Scheme, before the Internet domain name standard was established. For example, the name
uk.ac.bris.pys.as
was interpreted as a host named
as
within the UK (top level domain
.uk
), while the
Internet standard
In computer network engineering, an Internet Standard is a normative specification of a technology or methodology applicable to the Internet. Internet Standards are created and published by the Internet Engineering Task Force (IETF). They allow ...
would have interpreted it as a host named
uk
within the American Samoa top level domain (
.as
). During the period while both
JANET-style and
Internet-style addresses were in use, mailers and gateway sites had ad-hoc workarounds to handle the differences, but could still be confused.
Reverse-DNS for identifier strings first became widely used with the
Java platform
Java is a set of computer software and specifications that provides a software platform for developing application software and deploying it in a cross-platform computing environment. Java is used in a wide variety of computing platforms fr ...
.
Examples
Examples of systems that use reverse-DNS notation are:
*
Java
Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
generally uses it for namespaces, including
packages and
modules
*
Apple
An apple is a round, edible fruit produced by an apple tree (''Malus'' spp.). Fruit trees of the orchard or domestic apple (''Malus domestica''), the most widely grown in the genus, are agriculture, cultivated worldwide. The tree originated ...
's
Uniform Type Identifier (UTI)
* The
Android operating system
An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ...
, for classifying applications (because the
Dalvik virtual machine was based on Java)
*
dconf, the configuration
backend used by
GNOME
A gnome () is a mythological creature and diminutive spirit in Renaissance magic and alchemy, introduced by Paracelsus in the 16th century and widely adopted by authors, including those of modern fantasy literature. They are typically depict ...
* ginitd 'service' identifiers
* The
freedesktop.org
freedesktop.org (fd.o), formerly X Desktop Group (XDG), is a project to work on interoperability and shared base technology for free-software desktop environments for the X Window System (X11) and Wayland on Linux and other Unix-like operatin ...
Desktop Entry Specification
and
D-Bus
D-Bus (short for "Desktop Bus")
is a message-oriented middleware mechanism that allows communication between multiple Process (computing), processes running concurrently on the same machine. D-Bus was developed as part of the freedesktop.org pro ...
Specification
*
Flatpak
Flatpak is a utility for software deployment and package management for Linux. It provides a sandbox environment in which users can run application software in (partial) isolation from the rest of the system. Flatpak was known as xdg-app unti ...
also uses a unique reverse-DNS identifier for each application, aligning with freedesktop.org standard
*
iSCSI Qualified Naming
Some examples of reverse-DNS strings are:
*
com.adobe.postscript-font
,
UTI string for
Adobe Systems
Adobe Inc. ( ), formerly Adobe Systems Incorporated, is an American software, computer software company based in San Jose, California. It offers a wide range of programs from web design tools, photo manipulation and vector creation, through to ...
's
PostScript
PostScript (PS) is a page description language and dynamically typed, stack-based programming language. It is most commonly used in the electronic publishing and desktop publishing realm, but as a Turing complete programming language, it c ...
fonts
*
com.apple.ostype
,
UTI string for
Apple
An apple is a round, edible fruit produced by an apple tree (''Malus'' spp.). Fruit trees of the orchard or domestic apple (''Malus domestica''), the most widely grown in the genus, are agriculture, cultivated worldwide. The tree originated ...
's
OSType
*
org.omg.CORBA
,
Java
Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
library for
CORBA
The Common Object Request Broker Architecture (CORBA) is a standard defined by the Object Management Group (OMG) designed to facilitate the communication of systems that are deployed on diverse platforms. CORBA enables collaboration between sy ...
*
org.w3c.dom
,
Java
Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
library for
W3C
The World Wide Web Consortium (W3C) is the main international standards organization for the World Wide Web. Founded in 1994 by Tim Berners-Lee, the consortium is made up of member organizations that maintain full-time staff working together in ...
's
DOM
*
com.eu.gershwin.DeviceManager
, a ginitd service identifier commonly assigned to
udev
udev (userspace ) is a device manager for the Linux kernel. As the successor of devfsd and hotplug, udev primarily manages device nodes in the directory. At the same time, udev also handles all user space events raised when hardware devices ...
.
*
org.kde.dolphin.desktop
, a
desktop
A desktop traditionally refers to:
* The surface of a desk (often to distinguish office appliances that fit on a desk, such as photocopiers and printers, from larger equipment covering its own area on the floor)
Desktop may refer to various compu ...
file name
See also
*
Non-Internet email address
References
{{Reflist
External links
Eclipse Naming Conventions
Domain Name System