HomeContactsSite Map

Indy 10 Installation Instructions

All package names are followed by X0 (where X is your Delphi/C++Builder/RAD Studio product version).

For Example:

Delphi/C++Builder 6 is version 6.0, so the Indy packages are:
IndySystem60, IndyCore60, IndyProtocols60, dclIndyCore60, dclIndyProtocols60

RADStudio 10 Seattle is version 23.0, so the Indy packages are:
IndySystem230, IndyCore230, IndyProtocols230, dclIndyCore230, dclIndyProtocols230

Refer to Embarcadero's documentation for the complete list of which package version number belongs to which product release.

Note: this naming convention will likely be changed in Indy 11.

Before you begin

Some important notes before you install Indy 10:

1) The SuperCore package is very outdated and not currently usable. Don't even try to compile or install it.

2) There was no Delphi/C++Builder v13, so do not use the Indy...130 packages.  For D/CB/RAD 2009, use the Indy...120 packages.  For D/CB/RAD 2010, use the Indy...140 packages.

3) In D/CB/RAD 2009-XE, Embarcadero's DataSnap framework is compiled against the Indy 10 packages that ship with the IDE.  Installing a new version of Indy will render DataSnap unusable, as it will not be able to load the Indy packages anymore, and DataSnap cannot be recompiled by end users.  If you need to use DataSnap, then you will need to maintain the original Indy 10 packages for use in DataSnap projects.  You can use a separate installation of Indy 10 for non-DataSnap projects.  This was addressed by Embarcadero in D/CB/RAD XE2 so Indy 10 upgrades and DataSnap can co-exist.

4) In D/CB/RAD XE2 up to, and including, Update 3, an erroneous dependancy on Indy has been identified in Embarcadero's dclnet160.bpl package.  Installing a new version of Indy will cause this package to fail to load correctly in the IDE, preventing all contained components (such as THTTPRIO, TXMLDocument, TWeb*Dispatcher, T*Producer, TTcp*, TUdp*), as well as Wizards and Property Editors for them, from appearing at design-time.  The run-time components can still be instantiated dynamically in your run-time code, though!  Embarcadero is aware of the problem, and has already fixed the problem for XE3.  Removing the dependancy causes an interface change in dclnet.dcp, and Embarcadero does not normally release interface changes in product Updates, however the change is internal to Embarcadero's code only and should not effect end users, so Embarcadero is hopeful that the fix can be included in a near-future XE2 Update.

5) in D/CB/RAD XE2 Update 4, the DCLIPINDYIMPL160.BPL package has a link to Indy's IdHeaderCoderUTF unit, which does not exist in Indy anymore and was replaced with the IdHeaderCoderIndy unit.  Installing a newer version of Indy will cause a linker error in this package.  According to Embarcadero, this package is the only design-time package that should require rebuilding after upgrading Indy with any kind of interface changes or unit list changes.  The source for this package is provided in XE2, users can find it under $(BDS)\source\indy\implementation.

Note: interface changes have been made to Indy since XE2's release, so Embarcadero's IndyPeerImpl.pas unit will no longer compile as-is.  Have a look at the following discussion on the Embarcadero forums for some of the issues you may run into and how to work around them: https://forums.embarcadero.com/thread.jspa?threadID=90684 .

Note: due to a server crash, the above linked discussion thread has been lost.  Refer to the following archived discussion: http://www.codenewsfast.com/cnf/thread/0/permalink.thr-ng1921q9564, in particular this reply: http://www.codenewsfast.com/cnf/article/1430996872/permalink.art-ng1921q9582 .

6) in D/CB/RAD XE3, Embarcadero changed the signature of the TIdUDPServer OnUDPRead event in the bundled copy of Indy 10.  This was done in an attempt to address a slew of related QC bug reports (#88816, #89298, #89662, #92067, #93672, #94969, #97943, #99863, #103088, #104825) so the Delphi compiler would generate RTTI that allows the IDE to produce an event handler that is compatible with both Delphi and C++Builder without errors and without requiring additional RTL/compiler changes (which are actually needed to solve the root cause of the original errors).  Specifically, the AData parameter of the OnUDPRead event was changed from a Dynamic Array to an Open Array.  Consequently, the parameter signature is now different, which means that pre-existing user code that uses the OnUDPRead event in earlier D/CB/RAD versions will no longer work correctly without being updated accordingly.  This change was NOT approved by the Indy development team, and Embarcadero did NOT apply their change to other areas of Indy that are affected by the same issue, such as the TIdTelnet OnDataAvailable and IdIPMCastClient OnIPMCastRead events.  To maintain a single codebase, these changes have been merged into subsequent SVN releases of Indy 10.

7) In D/CB/RAD XE3+, Embarcadero's Metropolis UI LiveTile framework is compiled against the Indy 10 packages that ship with the IDE.  Installing a new version of Indy will render LiveTiles unusable, as it will not be able to load the Indy packages anymore, and LiveTiles cannot be recompiled by end users.  If you need to use LiveTiles then you will need to maintain the original Indy 10 packages for use in LiveTile projects.  You can use a separate installation of Indy 10 for non-LiveTile projects.  This has not been addressed by Embarcadero yet so Indy 10 upgrades and LiveTiles can co-exist.

There have been some reports that when compiling Indy for XE3, the compiler may complain about missing *.otares files.  This is caused by a {$R *.otares} statement in the .dpk files.  The files that are checked in to SVN do not contain this statement, but apparently the compiler may decide to insert it on its own.  If this happens, just remove the statement and recompile again.  Indy does not use *.otares files.  They are generated by the IDE when it encounters unknown resources while upgrading a project from an older IDE version.


Indy 10 source code can be downloaded from the Development Snapshot. Extract the source files to a folder of your choosing on your PC.

If Indy 10 is already installed, it needs to be uninstalled first.  Remove the pre-compiled BPL files - dclIndyCoreX0.bpl and dclIndyProtocolsX0.bpl - from the IDE via the "Components > Install Packages" dialog.  Then delete all of the existing binaries (IndySystemX0.*, IndyCoreX0.*, IndyProtocolsX0.*, dclIndyCoreX0.*, and dclIndyProtocolsX0.*) as well as delete any Indy 10 source files, if present.  Be sure to check for files in the IDE's \bin, \lib, and \source folders, \Indy subfolders, and OS system folders.

Delphi Compilation

You can either:

1) use the command-line FULLD#.BAT script that corresponds to your Delphi version.

2) Open the individual .dpk files in the IDE and compile them, in the following order:

    1. IndySystemX0.dpk (in Lib\System)
    2. IndyCoreX0.dpk (in Lib\Core)
    3. IndyProtocolsX0.dpk (in Lib\Protocols)
    4. dclIndyCoreX0.dpk (in Lib\Core)
    5. dclIndyProtocolsX0.dpk (in Lib\Protocols)

If you encounter the following linker error:

RLINK32: Error opening File packagename.drf

Try this workaround:

  1. Delete all .DCP and .BPL files for the package.
  2. Open the .DPK file in the IDE, go into its Project Options, and set the Build Control setting to "Explicit Rebuild".
  3. Rebuild the package.
  4. Repeat these steps for each dependant package.

Note for Cross-Platform compiling: the current .dpk source code is set for Windows compilations.  If you want to compile Indy 10 for other Platforms on Delphi versions that support this, you have to first edit the IndySystem project to remove the IdStackWindows, IdWinsock2, and IdWship6 units and add the IdStackVCLPosix and IdVCLPosixSupplemental units instead, and then edit the IndyProtocols project to remove the IdAuthenticationSSPI and IdSSPI units.  Perhaps in a future release, we will automate this with some precompiler macros or something, but the IDE usually does not like people putting custom code in .dpk files, so this may lead to other issues.

C++Builder Compiling

Indy does not include C++ .bpk project files, so you will need to use a FULLC#.BAT command-line scripts that corresponds to your version of C++Builder.  This will compile the .dpk files using C++Builder's command-line Delphi compiler (dcc32.exe) or MSBuild toolchain (msbuild.exe), depending on IDE version.

After Compiling

In your Indy directory you should now see some compiled .dcu files. Open the IDE and go to the "Tools > Environment options > Select Library" dialog tab. Now add the path to your files into the filepath collection. Click Ok.

Now install the two design-time packages into the IDE in the following order:

    1. dclIndyCoreX0.bpl
    2. dclIndyProtocolsX0.bpl

Kylix Installation

Kylix Instructions

FreePascal/Lazarus Installation

Lazarus Installation

Corporate Sponsors







site map


Copyright © 1993 - 2008 Chad Z. Hower (Kudzu) and the Indy Pit Crew.          Website design by RuInternet.ru