Delphi for Linux RTL units

by Mar 2, 2017

 I want to follow up my blog post covering the Delphi Linux compiler with a second one focused on the RTL units that are going to be available in Delphi for the Linux platform.

The System Name Space

These are the units part of the System name space that are available for the Linux platform (in alphabetic order):

SysInit.pas
System.Bindings.Consts.pas: this and following units have Live Bindings support
System.Bindings.CustomScope.pas
System.Bindings.CustomWrapper.pas
System.Bindings.EvalProtocol.pas
System.Bindings.EvalSys.pas
System.Bindings.Evaluator.pas
System.Bindings.Expression.pas
System.Bindings.ExpressionDefaults.pas
System.Bindings.Factories.pas
System.Bindings.Graph.pas
System.Bindings.Helper.pas
System.Bindings.Manager.pas
System.Bindings.ManagerDefaults.pas
System.Bindings.Methods.pas
System.Bindings.NotifierContracts.pas
System.Bindings.NotifierDefaults.pas
System.Bindings.ObjEval.pas
System.Bindings.Outputs.pas
System.Bindings.Search.pas
System.Bluetooth.Components.pas
System.Bluetooth.pas
System.Character.pas: this unit has Unicode support at the codepoint level
System.Classes.pas: basic classes for TComponent etc
System.ConvUtils.pas: convert units of measurement
System.DateUtils.pas: dates processing
System.pas: the core unit 
System.Diagnostics.pas
System.Generics.Collections.pas: as the name says, generic collections
System.Generics.Defaults.pas
System.Hash.pas: hashing support has been extended with file hashing
System.HelpIntfs.pas
System.IniFiles.pas: these clone the Windows INI files
System.Internal.DebugUtils.pas
System.Internal.ExcUtils.pas
System.Internal.JSONHlpr.pas
System.Internal.StrHlpr.pas
System.Internal.VarHlpr.pas
System.IOUtils.pas: support for modern file system access (input/output utilities)
System.JSON.BSON.pas: this and the following units have JSON and BSON streaming support
System.JSON.Builders.pas
System.JSON.Converters.pas
System.JSON.pas
System.JSON.Readers.pas
System.JSON.Serializers.pas
System.JSON.Types.pas
System.JSON.Utils.pas
System.JSON.Writers.pas
System.JSONConsts.pas
System.Linux.Bluetooth.pas
System.Masks.pas
System.MaskUtils.pas
System.Math.pas: Core mathematical functions
System.Math.Vectors.pas
System.Messaging.pas
System.Net.FileClient.pas: the "Net" units implement the HTTP client library
System.Net.HttpClient.pas
System.Net.HttpClient.Linux.pas
System.Net.HttpClientComponent.pas
System.Net.Mime.pas
System.Net.Socket.pas
System.Net.URLClient.pas
System.NetConsts.pas
System.NetEncoding.pas
System.RegularExpressions.pas: these units have RegEx support
System.RegularExpressionsAPI.pas
System.RegularExpressionsConsts.pas
System.RegularExpressionsCore.pas
System.RTLConsts.pas
System.Rtti.pas: Core RTTI access unit, or reflection support
System.Sqlite.pas
System.StartUpCopy.pas
System.StdConvs.pas
System.StrUtils.pas: core string processing utilities
System.SyncObjs.pas: threads synchronization
System.SysConst.pas
System.SysUtils.pas: the most classic system utilities
System.Tether.AppProfile.pas: AppTethering support
System.Tether.Comm.pas
System.Tether.Consts.pas
System.Tether.Manager.pas
System.Tether.NetworkAdapter.pas
System.Tether.TCPProtocol.pas
System.Threading.pas: this unit defines the Parallel Programming Library (or PPL)
System.TimeSpan.pas
System.Types.pas
System.TypInfo.pas: the more traditional RTTI access
System.UIConsts.pas
System.UITypes.pas
System.VarCmplx.pas: these units offer limited variants support
System.VarConv.pas
System.Variants.pas
System.VarUtils.pas
System.Zip.pas: compression support
System.ZLib.pas
System.ZLibConst.pas

Other Name Spaces

There are other RTL name spaces, though:

– XML support via native OmniXML
– SOAP support
– REST client library support

Linux and Posix APIs

The LinuxAPI name space with units for kernel definitions and Curl, plus dozens of units implementing the Posix API:

Posix.ArpaInet.pas
Posix.Base.pas
Posix.Dirent.pas
Posix.Dlfcn.pas
Posix.Errno.pas
Posix.Fcntl.pas
Posix.Fnmatch.pas
Posix.Grp.pas
Posix.Iconv.pas
Posix.Langinfo.pas
Posix.Limits.pas
Posix.Locale.pas
Posix.NetDB.pas
Posix.NetIf.pas
Posix.NetinetIcmp6.pas
Posix.NetinetIn.pas
Posix.NetinetIp6.pas
Posix.NetinetTCP.pas
Posix.NetinetUDP.pas
Posix.Pthread.pas
Posix.Pwd.pas
Posix.Sched.pas
Posix.Semaphore.pas
Posix.Signal.pas
Posix.StdDef.pas
Posix.Stdio.pas
Posix.Stdlib.pas
Posix.String_.pas
Posix.StrOpts.pas
Posix.SysMman.pas
Posix.SysSelect.pas
Posix.SysSocket.pas
Posix.SysStat.pas
Posix.SysStatvfs.pas
Posix.SysSysctl.pas
Posix.SysTime.pas
Posix.SysTimes.pas
Posix.SysTypes.pas
Posix.SysUio.pas
Posix.SysUn.pas
Posix.SysWait.pas
Posix.Termios.pas
Posix.Time.pas
Posix.Unistd.pas
Posix.Utime.pas
Posix.Wchar.pas
Posix.Wctype.pas
Posix.Wordexp.pas

There is More Than RTL

This list does not include units outside of the core RTL. which include FireDAC, DataSnap, EMS, WebBroker, Indy, and DunitX.

The new version of Delphi is bringing to the Linux platform a lot of technology. True, there is no ready-to-use GUI support, but there is lot of keep developers happy.