A project created by using Lazarus on one platform can be compiled on any other one which Free Pascal compiler supports. For desktop applications, one source code can target macOS, Linux, and Windows, with little or no modification. For example, the Lazarus IDE is created from one code base and available on all major platforms including Raspberry Pi.
Features
Lazarus provides a What You See Is What You Get (WYSIWYG) development environment for creating rich user interfaces, application logic, and other supporting code artifacts, similar to Delphi. Along with project management features, the Lazarus IDE also provides:
A visual windows layout designer
GUI widgets or visual components such as edit boxes, buttons, dialogs, menus, etc.
Non-visual components for common behaviors such as persistence of application settings
Lazarus uses Free Pascal as its back-end compiler. As Free Pascal supports cross-compiling, Lazarus applications can be cross-compiled from Windows, Linux, or macOS to any of the supported Free Pascal compilation targets. Applications for embedded devices (smartphones, PDAs, routers, game consoles) can be cross-compiled from any desktop platform.
Lazarus provides a cross-platform application framework called the Lazarus Component Library (LCL), which provides a single, unified interface for programmers, with different platform-specific implementations. Using LCL, it is possible to create applications in a write once, compile anywhere manner, unless system-dependent features are used explicitly. LCL was originally modeled after the Visual Component Library (VCL) in Delphi 6, but is not restricted to Windows. This is done by separating the definition of common widget classes and their widgetset-specific implementation. Each widget set is supported by providing an interface which interacts directly with the set.[3]
Database development
Developers can install packages that allow Lazarus to support several database management systems (DBMSes). Programs can interact with a DBMS through code or by components dropped on a form.
The following DBMSes are supported out of the box:
Lazarus resembles Delphi in many ways. It supports Component Object Model (COM) since version 2.2.0, and offers most of Delphi's networking functions. However, there are limits to the performance and feature set.
Lazarus does not support the following, which Delphi does:
Datasnap (uses Embarcadero proprietary enterprise functions, not a publicly documented system)
Dynamically loadable packages
.NET libraries (.NET code, however, can invoke Object Pascal code or anything other machine-native library via Platform Invocation Services.[5])
Extensive Microsoft Office connectivity (Lazarus can only open Microsoft Excel with a simple table filled out.)[citation needed]
LCL is not fully compatible with VCL. This makes the extensive repository of available VCL widgets inaccessible without conversion. The conversion effort mostly involves some editing, although there are a few fundamental differences. When porting, missing units in the libraries are a considerably bigger problem than incompatibilities between LCL and VCL. Components for Delphi can be converted to work in Lazarus. This can be complex, though less so than for Lazarus versions older than 0.9.30, based on FP 2.4.x.
On Windows, the default size of an executable file is larger than the Delphi 6 or 7 equivalent, as Lazarus stores debug information within the executable, rather than as separate files. Starting with version 0.9.30, Lazarus supports external debug symbols via compiler options. Thus, program file sizes can be significantly reduced. Alternatively, debug info can be stripped from EXEs (e.g. using a port of the UNIX strip command).
Distribution and licensing
Like Free Pascal, Lazarus is free software. Different portions are distributed under different free software licenses, including GPL, LGPL, MPL, and a modified version of LGPL.[6] LCL, which is statically built into the produced executables, is licensed under a modified version of the LGPL, granting extra permissions to allow it to be statically built into the produced software, including proprietary ones.
Installing a design time package is equivalent to linking to the IDE, so that distributing the Lazarus IDE with a GPL-incompatible design-time package such as the JEDI packages licensed under the Mozilla Public License, pre-installed would cause a license violation. This does not prohibit proprietary packages from being developed with Lazarus.
History
The first attempt to develop an IDE for Free Pascal dates back to 1998, under the "Megido" project. After the project failed, some of its developers started a new project based on a more flexible foundation. The name "Lazarus" alludes to the revival of the Megido concept. It is inspired by Lazarus of Bethany, who, according to the Gospel of John, was restored to life by Jesus four days after his death.
The first preliminary LCL version was ready for release in 2001. In 2003, the first beta version of Lazarus (0.9.0.3) was hosted at SourceForge. Lazarus version 1.0 was released in 2012. A significantly enhanced Lazarus 1.2 with was released in 2014. More than four million downloads had been made from SourceForge as of March 2014.
New components to write Windows services and Linux daemons, support for custom mouse cursors; includes Free Pascal 2.0.4
Old version, no longer maintained: 0.9.24
November 15, 2007
Windows, Mac OS X, Linux
First stable release for Win64, WinCE, and Intel-based Mac OS X. Improvements in Qt, Carbon, and Gtk2 widgetset interfaces. Customizable toolbar; includes Free Pascal 2.2.0
Old version, no longer maintained: 0.9.26
October 5, 2008
Windows, Mac OS X, Linux
Internal graphic system was rewritten. LCL now uses Unicode strings encoded as UTF-8 on all platforms. FPDoc help in tooltips. First version to run natively using the Carbon widgetset on Mac OS X
Old version, no longer maintained: 0.9.26.2
March 13, 2009
Windows, Mac OS X, Linux
Bug fixes, improved icon support; includes Free Pascal 2.2.2
Old version, no longer maintained: 0.9.28
September 29, 2009
Windows, Mac OS X, Linux
Improvements of editor and debugger including support for double-byte fonts such as Eastern, Japanese, Chinese, and Arabic, smaller file sizes of generated applications; includes Free Pascal 2.2.4
Old version, no longer maintained: 0.9.28.2
October 25, 2009
Windows, Mac OS X, Linux
Mainly bug fixes
Old version, no longer maintained: 0.9.30
March 22, 2011
Windows, Mac OS X, Linux
Large number of new features, including docking and multiple source-code windows. Based on Free Pascal 2.4.2
Bug fixes, includes Free Pascal 2.6.0. Release candidate for Lazarus 0.9.30.4
Old version, no longer maintained: 0.9.30.4RC2
March 7, 2012
Windows, Mac OS X, Linux
Release candidate for Lazarus 0.9.30.4
Old version, no longer maintained: 0.9.30.4RC3
March 11, 2012
Windows, Mac OS X, Linux
Release candidate for Lazarus 0.9.30.4
Old version, no longer maintained: 0.9.30.4
March 14, 2012
Windows, Mac OS X, Linux
Bug fixes
Old version, no longer maintained: 1.0RC1
July 29, 2012
Windows, Mac OS X (Intel), Linux
Release candidate for Lazarus 1.0
Old version, no longer maintained: 1.0RC2
August 21, 2012
Windows, Mac OS X, Linux
Release candidate for Lazarus 1.0
Old version, no longer maintained: 1.0
August 28, 2012
Windows, Mac OS X, Linux
First final version. This stable release includes Free Pascal 2.6.0. Multiple corrections and improvements of the IDE, including a macro function, expanded code-folding and new debugger functions
Old version, no longer maintained: 1.0.2
October 10, 2012
Windows, Mac OS X, Linux
Bug fixes, minor additions to LCL and widgetsets
Old version, no longer maintained: 1.0.4
December 2, 2012
Windows, Mac OS X, Linux
Bug fixes, minor additions to IDE, LCL and widgetsets as well as LazReport and TAChart
Old version, no longer maintained: 1.0.6
February 3, 2013
Windows, Mac OS X, Linux
Bug fixes, minor additions to IDE, LCL and widgetsets as well as LazReport and TAChart
Old version, no longer maintained: 1.0.8
March 19, 2013
Windows, Mac OS X, Linux
Bug fix release; includes Free Pascal 2.6.2
Old version, no longer maintained: 1.0.10
June 12, 2013
Windows, Mac OS X, Linux
Bug fixes
Old version, no longer maintained: 1.0.12
August 24, 2013
Windows, Mac OS X, Linux
Bug fixes
Old version, no longer maintained: 1.0.14
November 16, 2013
Windows, Mac OS X, Linux
Bug fixes
Old version, no longer maintained: 1.1.99
September 16, 2013
Windows, Mac OS X, Linux
Alpha version for Lazarus 1.2
Old version, no longer maintained: 1.2RC1
November 3, 2013
Windows, Mac OS X, Linux
Release candidate for Lazarus 1.2
Old version, no longer maintained: 1.2RC2
January 13, 2014
Windows, Mac OS X, Linux
Release candidate for Lazarus 1.2
Old version, no longer maintained: 1.2
March 4, 2014
Windows, Mac OS X, Linux
Multiple new features, including a macro recorder, support for layered graphs and Pascal Script. Based on Free Pascal 2.6.2
Old version, no longer maintained: 1.2.2
April 23, 2014
Windows, Mac OS X, BSD, Solaris, Linux
Bug fix release. Based on Free Pascal 2.6.4
Old version, no longer maintained: 1.2.4
June 16, 2014
Windows, Mac OS X, BSD, Solaris, Linux
Bug fix release
Old version, no longer maintained: 1.2.6
October 12, 2014
Windows, Mac OS X, BSD, Solaris, Linux
Bug fix release
Old version, no longer maintained: 1.4.0
April 19, 2015
Windows, Mac OS X, BSD, Solaris, Linux
Improvements of editor, resource handling and additional new features. Based on Free Pascal 2.6.4
Old version, no longer maintained: 1.4.2
July 14, 2015
Windows, Mac OS X, BSD, Solaris, Linux
Bug fix release
Old version, no longer maintained: 1.4.4
October 4, 2015
Windows, Mac OS X, BSD, Solaris, Linux
Bug fix release
Old version, no longer maintained: 1.6
February 18, 2016
Windows, Mac OS X, Linux
Multiple new features, including docking, project groups and improved editor. Based on Free Pascal 3.0.0.[7]
Old version, no longer maintained: 1.6.2
November 13, 2016
Windows, Mac OS X, Linux
Bug fix release
Old version, no longer maintained: 1.6.4
February 26, 2017
Windows, macOS, Linux
Bug fix release. Based on Free Pascal 3.0.2
Old version, no longer maintained: 1.8.0
December 6, 2017
Windows, macOS, BSD, Linux
Major release with many new features including an online package manager. Based on Free Pascal 3.0.4
ASuite is a free open-source application launcher for Windows. From 2.1 Alpha 1, it's fully written in Lazarus/FPC.
Beyond Compare is a data comparison utility for Windows, macOS, and Linux. The macOS and Linux versions are compiled using Lazarus/FPC.
Cartes du Ciel is a free planetarium program for Linux, macOS and Windows. The software maps out and labels most of the constellations, planets, and objects you can see with a telescope. It is fully written in Lazarus/FPC and released under GPL.
Cheat Engine is an open-source memory scanner/hex editor/debugger. It is useful for cheating in computer games. Since version 6.0 it is compiled with Lazarus/FPC.
EPANET, a software package for modelling water-distribution systems.
HNSKY, Hallo Northern Sky is a free planetarium program for Windows and Linux. Since version 3.4.0 written and compiled with Lazarus/FPC.
MyNotex is a free software for Linux useful to take and manage textual notes.
PeaZip is an open-source archiver, made with Lazarus/FPC.
TorChat is moving away from Python and is being rewritten in Lazarus + Free Pascal.
Double Commander is a cross-platform open-source file manager with two panels side by side. It is inspired by Total Commander, plus some new ideas.[15]
van Canneyt, Michaël; Gärtner, Mattias; Heinig, Swen; de Carvalho, Felipe Monteiro; Ouedraogo, Inoussa; Braun, Jörg (2011). Lazarus. Böblingen, Germany: Computer & Literatur Verlag GmbH. OL25426539M.
van Canneyt, Michaël; Gärtner, Mattias; Heinig, Swen; de Carvalho, Felipe Monteiro; Ouedraogo, Inoussa (2011). Lazarus: the complete guide. Blaise Pascal Magazine. OL25427992M.
Koch, Wilfried (2020). Professional Programming from the Beginning with Free Pascal and the Free Development Environment Lazarus (Part 1). Oberkochen, Germany: Oberkochener Medienverlag. p. 442. ISBN9783945899311.
Koch, Wilfried (2022). Professional Programming from the Beginning with Free Pascal and the Free Development Environment Lazarus (Part 2). Oberkochen, Germany: Oberkochener Medienverlag. p. 438. ISBN9783945899267.
Христов, Лазар (2023). Въведение в Lazarus IDE. България: E-книга PDF файл. p. 242.Въведение в Lazarus IDE