Uniscribe is the Microsoft Windows set of services for rendering Unicode-encoded text, especially complex text layout. They are implemented in the DLL USP10.DLL. USP10.dll became available to the public with Windows 2000 and Internet Explorer 5.0. In addition, the Windows CE platform has supported Uniscribe since version 5.0.
Although Uniscribe continues to be maintained, with Windows 7 its intended replacement DirectWrite was introduced, which has more features.
USP is an initialism for Unicode Scripts Processor. The main purpose of Uniscribe includes the following:
Below are listed some common versions of usp10.dll, as well as the methods by which they are distributed.
Features are added according only the "major.minor" part of the version number, the third part in the full version number is used for system target identification numbers for which the DLL was ported by Microsoft, and the last part is the build number on each target system version (which may change within regular system/software updates). Some hotfixes provide upgrades only for specific applications (notably in the Office installation directory), and not suited for use in the Windows system directory (whose version of the DLL should never be updated and is often protected by the system) :
File sizes may vary depending on specific localizations of the DLL (depending on the target system or application for which it was compiled); those given here are for the US-English localization.
Scripts with complex text layout have contextual and non-linear requirements to correctly render their typography. These requirements include: ligatures, where two consecutive characters have to be combined into one shape (Latin, Devanagari); reordering, where some characters have to be displayed before the letter they follow in actual pronunciation (Bengali, Sinhala, and other Indic languages); and context-shaping, as in cursive scripts where some letters have to change shape depending on whether they occur in the beginning, middle, or the end of the word (Arabic, Mongolian).