Please note that the LKSL project has now been deprecated, and superceded by ADAPT.
The LSKL project remains on GitHub mostly for posterity, and the ADAPT library (which has been fully redesigned, refined, improved and expanded upon) will receive all future support.
If you haven't already taken a look at ADAPT, please do so.
On Windows, don't forget to run INSTALL.BAT to register the necessary Environment Variables.
Environment Variables registered by INSTALL.BAT on Windows:
Variable Name | Points to Path |
---|---|
LKSL_HOME | \ |
LKSL_LIB | \Source\Lib |
LKSL_PASCAL | \Source\Lib\Pascal |
Feature | Description | Status |
---|---|---|
Base Types | Special Common Base Types each containing a Thread-Safe Locking Mechanism. | Suitable for real-world use (being used in production software) |
Event Engine | A very powerful system for producing Multi-Threaded, Asynchronous and Event-Driven programs. | Events, Event Threads and Event Listeners all working well |
Generics Collections | Highly efficient, Thread-Safe Collection Types (lists, trees etc.) | Suitable for real-world use (being used in production software) |
High Precision Threads | A special Thread Base Type designed to provide supremely High Precision Tick Rates. | Suitable for real-world use (being used in production software) |
Math Library | A library for Unit Conversion, special calculation and other useful mathematics routines. | Early in development |
Package Engine | Extension of the Streamables Engine supporting the packaging of files together (a VFS of sorts) | Planned, not yet implemented. |
Shared Streams Library | 100% Thread-Safe Stream Classes (Interfaced too) allowing read/write from multiple Threads. | Initial Types written and implemented, improvements underway! |
Stream Handling Library | Makes working with Streams much easier! Handles Deleting, Inserting, Reading and Writing data. | Suitable for real-world use (being used in production software) |
Streamables Engine | A system to serialize Object Instances into Streams, and to dynamically reconstitute them, too. | Suitable for real-world use (being used in production software) |
Feature | Delphi (XE2-XE8) | C++ Builder (XE2-XE8) | FreePascal 3.x+ |
---|---|---|---|
Base Types | Yes | Soon | Yes |
Event Engine | Yes | Soon | Soon |
Generics Collections | Yes | Soon | Soon |
High Precision Threads | Yes | Soon | Yes |
Math Library | Yes | Soon | Yes |
Package Engine | Soon | Soon | Soon |
Shared Streams Library | Yes | Soon | Yes |
Stream Handling Library | Yes | Soon | Yes |
Streamables Engine | Yes | Soon | Soon |
Feature | C | C++ | C# | Java | PHP | Python |
---|---|---|---|---|---|---|
Base Types | No | Yes | Yes | Yes | No | Yes |
Event Engine | Yes | Yes | Yes | Yes | No | Yes |
Generics Collections | No | Yes | Yes | Yes | No | Yes |
High Precision Threads | Yes | Yes | Yes | Yes | No | Yes |
Math Library | Yes | Yes | Yes | Yes | Yes | Yes |
Package Engine | Yes | Yes | Yes | Yes | Yes | Yes |
Shared Streams Library | Yes | Yes | Yes | Yes | No | Yes |
Stream Handling Library | Yes | Yes | Yes | Yes | Yes | Yes |
Streamables Engine | Yes | Yes | Yes | Yes | Yes | Yes |
*Note: There are no promises with the above table! It depends on who is willing to support what!**
If there's another platform that you think could benefit from the features of the LKSL, please raise an issue. Better yet, if you feel you can produce a viable LKSL translation (in part or whole) for another programming/scripting language, please consider contributing that work back to this original repository!
Feel free to take a look at the Documentation to learn how the LKSL can be integrated into your systems (or, as the case may be, how your system can be designed to best utilize the features of the LKSL).
You can also find educational articles demonstrating the various features of the LKSL can be found at http://otapi.com.
See LICENSE.md for the complete, no-nonsense license (and disclaimer). It's a very simple license scheme, enabling you to do anything you want except for claiming ownership of the source, or charging for its distribution.
Donations (while by no means mandatory) are always appreciated, and can be made by clicking this button: