
aardio 简介
====================================================
aardio 读音🔊 ['ɑ:diəʊ] ，请注意在我们的文档中 aardio 不会大写首字母 - 以此强调 aardio 编码遵守小驼峰命名规范。

aardio 专注于桌面软件开发，17年一直保持非常活跃地更新( 更新日志 )，aardio 被多年用于生产项目实践，久经测试和锤炼。
aardio 在诞生之初就设计了良好的架构与语法。正因如此，aardio 历经17年发展，日新月异，每一年都会带来大量的更新扩展，但仍然能保持最初简洁高效的结构与语法，即使是最早的 aardio 源代码仍然能不经修改在最新版本开发环境中完美运行。

aardio 小、轻、快，轻便利索，体积仅 6.5MB，学习和使用成本极低。aardio 虽然小，但提供了惊人数量的开源标准库、扩展库 - 这些库基本都是由纯 aardio 代码实现，涉及到了桌面编程的方方面面。aardio 中的所有库基本都是由作者一个人编写，所以拥有良好的一致性。aardio为 每一个库的每一个接口函数都编写了文档，并且提供了大量的演示范例。aardio 使用流行的类 C 语法(非常接近 Javascript )，在设计中尽可能地避免哗众取宠、标新立异，并且吸取和借鉴流行语言的习惯用法。不少 aardio 用户都表示只要有一点编程基础，aardio 几乎不用特别学习，看几天就会用了，仅仅是复制拼凑范例都能快速开发出不错的软件。

aardio 属于易用性极强的动态语言，但也是一种混合语言，可以罕见地、非常方便地操作静态类型，因此可以直接调用 C语言、C++ 等等静态语言的 API 接口函数( 不需要像VB那样先声明API )，aardio 可以支持非常多的API调用约定，例如 stdcall，cdecl，thiscall，fastcall，regparm(n) 等调用约定 aardio 都可以支持。因为 aardio 奇特的语言特性，aardio 的胶水能力极强，在 aardio 中可以非常方便地调用 C语言、C++、VB、C#、Java、Python、Javascript、Node.Js、Flash ActionScript、PHP、VBScript、NewLISP、AutoLISP、Delphi、FreeBASIC、Ruby、Rust、Julia、Nim、Go 语言、批处理 ...... 甚至可以直接嵌入汇编机器码并且转换为普通的 aardio 函数。aardio 可直接调用、嵌入、交互的第三方编程语言数量非常多，实现这些第三方语言接口的功能模块基本都是开源的（很多只用了极少的代码）。

aardio 可以嵌入非常多的浏览器控件，例如系统自带的 WebBrowser、WebView 控件、 以及 WebView2、WebKit、Electron、CEF3、HTMLayout、Sciter...... 甚至可以直接调用系统安装的 Chrome、Chromium Edge 等浏览器写软件界面。而且在网页中调用本地接口、以及 aardio 与浏览器的交互极其方便，例如直接调用 Javascript 函数，并且在 Javascript 中直接回调 aardio 函数，不需要任何复杂的封装和中间件，你甚至可以在 Javascript 中直接调用 WINAPI 函数。

aardio 不仅可以方便地使用 Web 技术编写界面，也提供可视化开发工具，可以方便地通过拖拉传统控件创建程序。并且 aardio 提供强大的 plus控件（开源）可以方便地实现控件九宫格贴图、透明贴图、可以快速制作出漂亮的界面。而且aardio可以非常方便地生成独立、绿色、无依赖的软件，生成的软件极小，通常比使用其他开发工具编写的类似功能软件小几倍甚至是几十倍。并且 aardio 生成的软件可以完美兼容 XP，Vista，Win7，Win8，Win10，Win11...... 等所有流行桌面操作系统。

aardio 不仅仅可以开发桌面软件，也可以用于开发网站，aardio 可以直接支持与 PHP 类似的 HTML 模板语法，提供语言级别的模板解析，一个 aardio 源码文件，可以放 aardio 源码，也可以直接放 HTML，或者放 HTML，aardio 混合的模板代码，aardio 都能完美支持。并且 aardio可以使用几句代码就可以创建一个微型嵌入式 HTTP 服务端（可以集成 WebSocket 服务端），因此 aardio 可以非常方便地为浏览器控件提供 HTTP 服务端，并且像写网站那样写桌面客户端软件。

区别于其他动态语言，aardio 可以非常方便地支持真多线程，并且提供大量多线程函数库、演示范例等等。

aardio 处理 Unicode 编码非常方便且简洁高效，例如在 aardio 调用基于 UTF-16编码 的 Unicode WinAPI，或者调用其他基于 UTF-8 编码的接口，我们不需要多写一句代码处理复杂的编码问题。在 aardio 中字符串拥有独特的 UTF 自动标记特性，可以实现自动识别多种不同编码，虽然 aardio 默认编码为UTF-8，但字符串中可以存储二进制数据、UTF-8编码文本、UTF-16编码文本等等，所以 aardio 不但可以完美支持 Unicode，也可以方便地处理二进制数据、或者其他编码的文本。类似这样的创造性设计在 aardio 中随处可见，多次有用户反馈，学习 aardio 让自己的编程思路变得更开阔，使用其他编程语言也因此深受启发。


aardio 开发历程:
====================================================

2004 年基于开源项目 Lua 开发出 LAScript，并随当时的模拟精灵推出，
当时的 LAScript 仍然是一种纯脚本语言，仅支持动态类型，并不支持原生静态类型编程，不能直接用于原生开发、不能独立编写应用程序。
只能用于编写脚本（文本格式的解释执行文件）。

于 2005 年开始基于 LAScript 研发新的 AAuto ，直到 2007 年底才完成第一个版本，启动了第一个 AAU 程序。
经过漫长和艰苦的开发，于 2010 年终于对外发布了第一个公开测试版本.这是一个非常粗糙的版本，工具箱里的控件。
大多都是点击提示“尚未完成”，标准库里也只有几个简单的示例，虽然只是发布了一些简单的范例、没有做什么推广工作，
但还是很意外的吸引了不少开发者，直到 2011 年年底发布 1.0正式版，标准库基本完成，已经可以正式的用于开发软件产品。

至 2016 年基于 AAuto 开发 aardio。
aardio 使用了全新的 Unicode 内核，支持网站服务端开发。
aardio 是独立的、更新换代的产品，重构了大部分代码，更改几乎覆盖到每一个文件。

AAuto 与 aardio 的区别类似于火车与高铁的区别。 
AAuto 没有改名为 aardio ，AAuto 与 aardio 是不同的产品。


关于 Lua
====================================================

Lua is free software distributed under the terms of the MIT license reproduced here. 
Lua may be used for any purpose, including commercial purposes, at absolutely no cost. No paperwork, no royalties, 
no GNU-like "copyleft" restrictions, either. Just download it and use it.

Lua is certified Open Source software.  
Its license is simple and liberal and is compatible with GPL. Lua is not in the public domain and PUC-Rio keeps its copyright.

The spirit of the Lua license is that you are free to use Lua for any purpose at no cost without having to ask us. 
The only requirement is that if you do use Lua, then you should give us credit by including the copyright notice somewhere in your product or its documentation. 
A nice, but optional, way to give us further credit is to include a Lua logo and a link to our site in a web page for your product.

The Lua language is entirely designed, implemented,
 and maintained by a team at PUC-Rio in Brazil. The implementation is not derived from licensed software.

Copyright (C)  1994–2012 Lua.org, PUC-Rio.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

LuaCOM is available under the same terms and conditions as the Lua language.

Copyright (C) 1998-2005 Tecgraf, PUC-Rio
Authors: V. Almendra, R. Cerqueira, F. Mascarenhas, and others.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
