
Universal Network Objects (UNO) is the
component model used in the
OpenOffice.org
OpenOffice.org (OOo), commonly known as OpenOffice, is a discontinued open-source office suite. Active successor projects include LibreOffice (the most actively developed) and Collabora Online, with Apache OpenOffice being considered mostly d ...
and
LibreOffice
LibreOffice () is a free and open-source office productivity software suite developed by The Document Foundation (TDF). It was created in 2010 as a fork of OpenOffice.org, itself a successor to StarOffice. The suite includes applications ...
computer software
application suites. It is interface-based and designed to offer interoperability between different
programming language
A programming language is a system of notation for writing computer programs.
Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
s, object models and machine architectures, on a single machine, within a LAN or over the Internet.
Users can implement or access UNO components from any programming language for which a
language binding
In programming and software design, a binding is an application programming interface (API) that provides glue code specifically made to allow a programming language to use a foreign library or operating system service (one that is not native to ...
exists. Complete UNO language bindings exist for
C++ (compiler-dependent),
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 ...
,
Object REXX
Object REXX is a high-level, general-purpose, interpreted, object-oriented ( class-based) programming language. Today it is generally referred to as ooRexx (short for "Open Object Rexx"), which is the maintained and direct open-source success ...
,
Python
Python may refer to:
Snakes
* Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia
** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia
* Python (mythology), a mythical serpent
Computing
* Python (prog ...
, and
Tcl
TCL or Tcl or TCLs may refer to:
Business
* TCL Technology, a Chinese consumer electronics and appliance company
** TCL Electronics, a subsidiary of TCL Technology
* Texas Collegiate League, a collegiate baseball league
* Trade Centre Limited ...
. Bindings allowing access, but not writing, to components exist for
StarOffice Basic
OpenOffice Basic (formerly known as StarOffice Basic or StarBasic or OOoBasic) is a dialect of the programming language BASIC that originated with the StarOffice office suite and spread through OpenOffice.org and derivatives such as Apache OpenO ...
,
OLE Automation
In Microsoft Windows applications programming, OLE Automation (later renamed to simply Automation) is an inter-process communication mechanism created by Microsoft. It is based on a subset of Component Object Model (COM) that was intended for use ...
and the
.NET
The .NET platform (pronounced as "''dot net"'') is a free and open-source, managed code, managed computer software framework for Microsoft Windows, Windows, Linux, and macOS operating systems. The project is mainly developed by Microsoft emplo ...
Common Language Infrastructure
The Common Language Infrastructure (CLI) is an open specification and technical standard originally developed by Microsoft and standardized by International Organization for Standardization, ISO/International Electrotechnical Commission, IEC (ISO/ ...
. In particular, this API is used by macros.
Universal Network Objects operate within the UNO Runtime Environment (URE).
The
Apache OpenOffice
Apache OpenOffice (AOO) is an open-source software, open-source office suite, office productivity software suite. It is one of the successor projects of OpenOffice.org and the designated successor of IBM Lotus Symphony. It was a close cousin of ...
version of UNO is released under the terms
Apache License
The Apache License is a permissive free software license written by the Apache Software Foundation (ASF). It allows users to use the software for any purpose, to distribute it, to modify it, and to distribute modified versions of the software ...
(Version 2) as
free and open source software
Free and open-source software (FOSS) is software available under a Software license, license that grants users the right to use, modify, and distribute the software modified or not to everyone free of charge. FOSS is an inclusive umbrella term ...
.
UNO for function-calling
Examples: an external program can export an
ODT file as a
PDF
Portable document format (PDF), standardized as ISO 32000, is a file format developed by Adobe Inc., Adobe in 1992 to present documents, including text formatting and images, in a manner independent of application software, computer hardware, ...
file, or import and convert a
DOCX
Office Open XML (also informally known as OOXML) is a zipped, XML-based file format developed by Microsoft for representing spreadsheets, charts, presentations and word processing documents. Ecma International standardized the initial version ...
, calling LibreOffice by the UNO interface. Another external program can access a cell and formulas from LibreOffice Calc file.
Application examples: ''Docvert'', ''JODConverter'', ''unoConv''.
UNO for Add-Ons
Programmers can write and integrate their own UNO components to OpenOffice/LibreOffice. Those components can be added to the LibreOffice menus and toolbars; they are called "Add-Ons".
The Add-Ons can extend the functionality of LibreOffice.
The integration of new components is supported by some tools and services. The three main steps are as follows:
[
#Register the new components within LibreOffice. This can be accomplished using the tool ]unopkg
.
#Integrate the new components as services. The ProtocolHandler and JobDispatch services assist you.
#Change the user interface (menus or toolbars). This can be done almost automatically by writing an XML text file that describes the changes.
Application example: ''jOpenDocument''.
References
External links
;Apache OpenOffice
UNO Development Kit project page
Developer's Guide
;LibreOffice
Inside LibreOffice: Universal Network Objects
;Language bridges (native for Java and Python)
UNO for Object REXX
UNO for PHP (written in C++)
UNO for FreePascal/Delphi
maybe orphaned
{{Authority control
Object-oriented programming
OpenOffice