A platform for component developers to build complex data streaming applications with zero lines of code!
  • Data Flow Solution
  • Data-Typed Pins
  • Powerful, Proven
  • Multi-Threaded
  • High Performance
  • Flexible License


About OpenWire

OpenWire is a free open source library. The library allows writing advanced VCL and FireMonkey components for rapid codeless application development. The components developed with the library allow creation of complex applications with zero lines of program code.
   OpenWire Editor in RAD Studio XE3
The above image visualizes OpenWire properties. The application shown is a fully functional audio-video processing application with user interface and file selection dialog, written with zero lines of code.  The the AVIPlayer and the audio-to-real converter as well as the scope and image displays -- everything communicates over OpenWire connections that you chain together at design time. There is no code whatsoever involved in implementing the application!
Donate to the OpenWire project
OpenWire is free open source project. The product is result of many years of development. If you like the technology, and are willing to help us continue working on it, you can donate using the link bellow: 
OpenWire on SourceForge.net
OpenWire is now available on SourceForge: https://sourceforge.net/projects/openwireproject/ . An SVN repository is used. We are in process of adding all the source files.
You can access the SVN repository here: https://openwireproject.svn.sourceforge.net/svnroot/openwireproject directly or by using SVN :
svn co https://openwireproject.svn.sourceforge.net/svnroot/openwireproject openwireproject
Please let us know if you are interested in contributing to the project development so we can consider adding you to the list of project members.


Our component libraries come in 3 versions a VCL - Firemonkey version (for Delphi / C++ Builder / RAD Studio XE4 to 10.1 Berlin), an MFC compatible Visual C++ version, and a .NET 2.0 and 4.0 (4.5 and 4.6 compatible) supporting Visual Studio 2005 to 2015.
The RAD Studio version is a set of native VCL and Firemonkey components of which all include now the powerful Mitov Runtime.
The Visual C++ version is a set of native Visual C++ classes (components).
The NET 2.0 and 4.0 (4.5 and 4.6 compatible) version is a set of managed .NET components.  The .NET version has the same performance as the native versions, and supports all the Microsoft .NET languages including Visual Basic, C#, J#, F# and C++/CLI.
Due to the unique architecture of the OpenWire platform, the components are implemented the same way in Managed .NET and native Windows (32 and 64 bit) environments. The code to control a component from VB.NET, C++/CLI, C#, and J#, Visual C++ MFC, Delphi, and C++ Builder is almost identical. This allows the developers to migrate and share code between the different environments thus significantly improving the productivity.
OpenWire Libraries: for fast, complex data stream processing with almost zero lines of code!
Delphi Prism RAD Studio XE8 Delphi XE8 C++ Builder XE8 RAD Studio 10 Seattle Delphi 10 Seattle C++ Builder 10 Seattle

OpenWire itself is FREE Open Source project.  Below is a brief description of some of the features of the current OpenWire version. The full documentation is available as a Word document.

The purpose of the OpenWire project is to introduce a unified, easy way to transfer data among different VCL or FireMonkey components. This is very similar to the way that products like LabView and HP VEE work.  For example, you could quickly build an application with a sine wave generator, which streams out to a chart and in parallel to a filter, which streams out to another chart and in parallel to a file logger, as well as to a serial communication sending the data to another system.  And what makes this easy is that you do not write code: You build streams by connecting an OutputPin to one or more InputPins.  The underlying technology pumps your data from pin to pin, using multiple threads for high performance.
OutputPins and InputPins can be viewed as connectors on the edges of components -- and Mitov Software offers a vast array of custom components on multiple platforms; or, you can build your own.
Features of OpenWire Componets:
  • Each component can have one or more inputs and/or outputs.
  • Each Input or Output is called Pin. I.E. there are IputPins and OutputPins.
  • Each OutputPin can stream specific format data to compatible format InputPins.
  • Each type of data has its own data specification.
The data specification is a globally unique data type identifier.  For example, the integer data type has one type of data specification and the String data type has a different one. An OutputPin can be specified as being able to stream one or many types of data.  For example, you could have an OutputPin that sends file names and streams String data. Any InputPin accepting Strings will be able to connect and receive from this Pin, and any Pin accepting file names will be able to connect and receive, too.  Specifically:
  • Each Pin is a property cloned from TOWPin.
  • The InputPin is inherited from TOWPin and the are called TOWSinkPin.
  • The OutputPin is inherited from TOWPin and the are called TOWSourcePin.
  • The InputPin and OutputPin are responsible for implementing one or many stream specific inerface(s). The interface has a unique GUID specified for that type of stream.
  • The InputPin and OutputPin have data specification which describes what type of data types (interfaces) it can accept (connect to).
  • The data specification for a certain data type contains in the TPinType object.
  • The TPinType contains one or more entries of type TGUID.
  • The TGUID is used to determine the type of data - it’s in fact the GUID of the interface being able to connect to that type of data.
There is a handshaking mechanism involved during the connection of 2 Pins. Only compatible data type Pins can be connected. Otherwise the connection is rejected. There are property editors which are allowing you to connect the Pins. You can connect 2 Pins at run time as well.
OpenWire 2.x adds StatePins. StatePins can be connected together by creating hidden objects named StateDispatchers(States). The StatePins share one and the same state. If a the state of one of the StatePins changes all the connected StatePins are changing to the same state. StatePins can be connected to one SourcePin, and/or to multiple SinkPins.
The following products are developed with OpenWire and are free for non commercial purposes:


OpenWire: What's New

New in Version (released on 2018-12-21)

  • Added RAD Studio 10.3 Rio support
  • Improved Dynamic Type Info implementation
  • Improved property editors

New in Version (released on 2018-11-12)

  • Added Linux support
  • Added iOS support
  • Added RAD Studio 10.2 Tokyo support
  • Improved MAC, and Android compatibility
  • Pins converted to use the new Mitov.Runtime serialization
  • Added OWRequiredPinAttribute support
  • Added TOWIntToCardinalFormatConverter and TOWCardinalToIntegerFormatConverter
  • Added TOWRealToRealComplexFormatConverter
  • Added TOWRealListStatePin and TOWIntegerListStatePin
  • Added Execute Process
  • Added Command Line parsing and Process Execute
  • Added option to disable the design time extentions
  • Added Socket Binding
  • Redesigned JSON Serialization
  • Added TPeriodicThread
  • Added initial Dynamic Type Info implementation
  • Added GetIndexedSubProperty in the RTTI
  • Added GetType for TObject in the RTTI
  • Added support for both object and class in TMethodInfo.Invoke in the RTTI
  • Enchanced Query functionality
  • Added IPairCollection
  • IArrayWriter renamed to ISequentialWriter
  • IArrayReader renamed to ISequentialReader
  • Improved Serialization Readers
  • Added Reserialize
  • Improved design time property editors support
  • Added option to replace property collection items while keeping all compatible settings
  • Added filtering for property collections
  • Added support for categorized list property selection
  • Added TreeView filtering support
  • Updated to use the latest Delphi language features

New in Version (released on 2016-05-03)

  • Added RAD Studio 10.1 Berlin support
  • Added Reset to Default property editors
  • Added Enum property editors
  • Added Class events property editors
  • Added Multi-Event property editors
  • Added Make/Split Structure components

New in Version (released on 2015-10-28)

  • Added 10 Seattle support
  • Added support for VS2015
  • Added TOWBoolToIntFormatConverter
  • Improved threading support
  • Improved OpenWire Editor
  • Clock pins changed to MiltiSink
  • Improved Design Time Editors
  • Improved JSON support
  • Improved collections
  • Added more Live Binding types
  • Added support for hosting OpenWire Studio projects
  • Added serialization support in the buffers

New in Version (released on 2015-04-17)

  • Added XE8 support
  • Added a number of standrd pin tipes, and colors for data types.
  • Added a number of type converters.
  • Added support for pin grouping across sub properties.
  • Added support for supression during on connect notifications.
  • Added Add/Remove pin notification for owner component.
  • Added support for Debug pins.
  • Added support for RAD Studio preview windows.
  • Significantly improved property Delphi editors

New in Version (released on 2014-04-15)

  • Added Delphi and C++ Builder XE5, and XE6 support.
  • Added MAC and Android support.
  • Added more standard pin types.
  • Added support for auto component suggestion in OpenWire Studio.
  • Simplified locking interface.
  • Improved integration with the OpenWire Editor.

New in Version 6.0 (released on 2013-06-12)

  • Added support for Delphi / C++ Builder / RAD Studio XE4
  • Now uses the latest language features in Delphi such as generics, and anonymous methods
  • Support for Lazarus and Delphi versions older than XE2 is discontinued due to the new language features
  • Significantly improved threading model
  • Improved integration with the OpenWire Editor

New in Version 5.0.3 (released on 2012-10-10)


  • Added support for Delphi / C++ Builder / RAD Studio XE3
  • Improved Visual Live Binding support
  • Improved FireMonkey support
  • Added support for Visual Studio 2012

New in Version 5.0.2 (released on 2012-04-16)


  • Added 64 bit support for VCL, FireMonkey

New in Version 5.0.1 (released on 2011-10-18)

  • Added FireMonkey support.
  • Updated documentation.

New in Version 5.0 (released on 2011-09-07)

  • Added Delphi and C++ Builder XE and XE2 support.
  • Improved Lazarus support.
  • 64 bit compatible.
  • Improved threading support.
  • Added expandable editors support.

New in Version 4.5

  • TOWMultiSinkPins added.
  • Improved pin editors.
  • Fully Lazarus compatible under Windows.

New in Version 4.3.1

  • Updated install.
  • Fixed pin list editors for RAD 2010.

New in Version 4.3

  • Added RAD Studio 2010 support.

New in Version 4.0.1

  • Improved installs.

New in Version 4.0

  • Added C++ Builder 2009 support.
  • Added Format Converters.
  • Added Lazarus support for Windows, and Linux.
  • New threading lock mechanism.
  • Added debug subscription support.

New in Version 3.1

  • Added C++ Builder 2007 support.
  • Fixed Frames support.
  • Fixed bug in PinLists when used with wide strings.

New in Version 3.0

  • Improved .NET proxy support.
  • Major upgrade of the way the pins are stored and loaded.
  • Added ConnectAfter pin function - allows specifying the order of the notifications.
  • Improved support for the OpenWire Graphical Editor.
  • Fixed bug when connecting state pins to members of PinList.

New in Version 2.6.1

  • Fixed a conflict with TChart.

New in Version 2.6

  • Added Delphi and C++ Builder 2006 support.

New in Version 2.5

  • Improved multithreading support.

New in Version 2.4

  • OpenWire has a new full multithreading support implemented.
  • New Delphi 2005 support.
( Click to view Larger images. )
These demos are executable after downloading.
Also see:   Demo source code downloads

OpenWire Examples

OpenWire Graphical Editor OpenWire Graphical Editor
OpenWire Graphical Editor in Delphi XE OpenWire Graphical Editor in Delphi XE
OpenWire Graphical Editor in Delphi 2005 OpenWire Graphical Editor in Delphi 2005
OpenWire Graphical Editor in Delphi 7 OpenWire Graphical Editor in Delphi 7

OpenWire: Frequently Asked Questions

Q: Can I use OpenWire in a non open source commercial application or component library?

Yes you can use OpenWire in non open source applications and component libraries.

Q: Can I write multithreading applications using OpenWire? Is it multithreading safe?

Yes. The latest version of OpenWire is fully multithread safe, and is used in heavily multithreaded solutions.

Q: Why do I see only few simple components when I install OpenWire? Where are the OpenWire components?

OpenWire is a library of properties called Pins. It does not provide components, just properties for writing such components. The components you see are demo components provided to you to learn how to use OpenWire in your components.

OpenWire Installers

Firemonkey and VCL Installer: OpenWire VCL and FireMonkey 32 & 64 bit support for 10.2 Tokyo and 10.3 Rio
Updated on 2018-12-21, downloaded 581 times.

Legacy Firemonkey and VCL Installer: OpenWire VCL and FireMonkey 32 & 64 bit support for XE8 to 10.1 Berlin
Updated on 2016-06-06, downloaded 1880 times.
Legacy Firemonkey and VCL Installer: OpenWire VCL and FireMonkey 32 & 64 bit support for XE7 to 10 Seattle
Updated on 2015-10-28, downloaded 815 times.
Legacy Firemonkey and VCL Installer: OpenWire VCL and FireMonkey 32 & 64 bit support for XE6 to XE8
Updated on 2015-06-11, downloaded 700 times.
Legacy Firemonkey and VCL Installer: OpenWire VCL and FireMonkey 32 & 64 bit support for XE4 to XE7
Updated on 2014-11-19, downloaded 886 times.
Legacy Firemonkey and VCL Installer: OpenWire VCL and FireMonkey 32 & 64 bit support for XE3 to XE6
Updated on 2014-04-22, downloaded 896 times.
Legacy Firemonkey and VCL Installer: OpenWire 6.0.0 VCL and FireMonkey (Windows only) 32 and 64 bit support for XE2 to XE4
Updated on 2013-06-15, downloaded 1207 times.
Legacy Firemonkey and VCL Installer: Legacy OpenWire 5.0.3 VCL and FireMonkey (Windows only) 32 and 64 bit support for 2010 to XE
Updated on 2012-10-10, downloaded 2249 times.
Legacy Firemonkey and VCL Installer: OpenWire 5.0.1 for Delphi/C++ Builder 5 to 2009
Updated on 2011-10-18, downloaded 22992 times.


These demos are executable after downloading.   Also see: Demo source code downloads


             This software is provided 'as-is', without any express or
             implied warranty.  In no event will the author be held liable
             for any  damages arising from the use of this software.
             Permission is granted to anyone to use this software for any
             purpose, including commercial applications, and to alter it
             and redistribute it freely, subject to the following
             1. The origin of this software must not be misrepresented,
                you must not claim that you wrote the original software.
                If you use this software in a product, an acknowledgment
                in the product documentation would be appreciated but is
                not required.
             2. Altered source versions must be plainly marked as such, and
                must not be misrepresented as being the original software.
             3. This notice may not be removed or altered from any source


December 21, 2018more...

The latest RAD Studio 10.3 Rio compatible versions of Libraries and OpenWire Studio are now available on the site

November 12, 2018more...

The latest RAD Studio 10.2, and Visual Studio 2017 compatible versions of Libraries and OpenWire Studio are now available on the site

January 22, 2018more...

Delphi 10.2.2 Tokyo versions available

May 4, 2016more...

10.1 Berlin Support in Latest Release

October 28, 2015more...

10 Seattle Support in Latest Release

July 3, 2015more...

OpenWire Studio Beta5

February 13, 2015more...

OpenWire Studio Beta4

December 20, 2014more... Release for .NET

April 15, 2014more...

NEW! XE6 Components Release with new Android Support

June 12, 2013more...

NEW RELEASE: Version 6.0 of our Component Librarys -- includes OpenWire Editor

More News