HomeContactsSite Map

Indy 10 Installation Instructions

All package names are followed by X0 (where X0 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 be changed in Indy 11 to drop the version numbers from the package names!

Before you begin

Some important notes before you install Indy 10:

  • The SuperCore package is very outdated and not currently usable. Don't even try to compile or install it.
  • 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.
  • 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.
  • 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.
  • 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.

Update: 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 (due to a server crash, the earlier 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).

  • 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 Quality Central bug reports (#88816, #89298, #89662, #92067, #93672, #94969, #97943, #99863, #103088, #104825), to allow the Delphi compiler to 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.
  • 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.

Online Package Managers

Lazarus 1.8 and later has a built-in Online Package Manager. Indy has been included in the OPM, and thus can be installed into Lazarus with a single click, instead of having to manually download, compile, and install Indy yourself.

In a future version, Indy will eventually be included in Embarcadero's GetIt Package Manager to automate the following installation steps for you.


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 design-time BPL files - dclIndyCoreX0.bpl and dclIndyProtocolsX0.bpl - from the IDE via the "Components > Install Packages" dialog.
  • Delete all of the existing binaries - IndySystemX0.*, (dcl)IndyCoreX0.*, and (dcl)IndyProtocolsX0.*
  • 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:

  • Use the command-line FULLD#.BAT script that corresponds to your Delphi version.
  • 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 Indy 10 package projects are set for Windows compilations.  The IndySystem and IndyProtocols packages do have a few platform-specific units in them, which are conditionally compiled via IFDEF statements in the DPK files.  This is fine for command-line compilations, but the IDE usually doesn't handle IFDEFs in DPK files very well, and this can also cause an associated DPROJ file to be out of sync with its DPK file. So this may lead to issues if you want to compile Indy 10 via the IDE for non-Windows platforms (in Delphi versions that support this). You might need to edit the IndySystem project to remove the IFDEFs and replace the IdStackWindows, IdWinsock2, and IdWship6 units with the IdStackVCLPosix and IdVCLPosixSupplemental units instead, and then edit the IndyProtocols project to remove the IFDEFs and the IdAuthenticationSSPI and IdSSPI units.  Perhaps in a future release, we will try to automate/cleanup this better.

    C++Builder Compiling

    Indy does not include BPK project files for C++Builder, so you will need to use the FULLC#.BAT command-line script 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