Difference between revisions of "lua-https"

(Created page with "{{newin|12.0|120|type=module|text=Users can compile from source for earlier versions of LÖVE}} lua-https is an upcoming library for HTTPS connec...")
 
m (Change description.)
Line 1: Line 1:
 
{{newin|[[12.0]]|120|type=module|text=Users can [[#Compile_From_Source|compile from source]] for earlier versions of LÖVE}}
 
{{newin|[[12.0]]|120|type=module|text=Users can [[#Compile_From_Source|compile from source]] for earlier versions of LÖVE}}
  
lua-https is an upcoming library for HTTPS connectivity using OS-specific backends specifically written for LÖVE 12.0 and supports Windows, Linux, macOS, iOS, and Android.
+
lua-https is a simple Lua HTTPS module using native platform backends specifically written for LÖVE 12.0 and supports Windows, Linux, macOS, iOS, and Android.
  
 
lua-https is licensed under zLib license, same as LÖVE.
 
lua-https is licensed under zLib license, same as LÖVE.
Line 63: Line 63:
 
[[Category:Libraries]]
 
[[Category:Libraries]]
  
{{#set:Description=Module for HTTPS connectivity.}}
+
{{#set:Description=A simple Lua HTTPS module using native platform backends where applicable.}}
 
{{#set:LOVE Version=12.0}}
 
{{#set:LOVE Version=12.0}}
 
{{#set:Keyword=Networking}}
 
{{#set:Keyword=Networking}}

Revision as of 14:19, 21 March 2022

Available since LÖVE 12.0
Users can compile from source for earlier versions of LÖVE.


lua-https is a simple Lua HTTPS module using native platform backends specifically written for LÖVE 12.0 and supports Windows, Linux, macOS, iOS, and Android.

lua-https is licensed under zLib license, same as LÖVE.

Reference

To use lua-https, load it with require like local https = require("https"). lua-https does not create global variables!

The https table expose single function: https.request

Synopsis

code, body, headers = https.request( url, options )

Arguments

string url
HTTP or HTTPS URL to access.
table options
Optional options for advanced mode.
string data
Additional data to send as application/x-www-form-urlencoded.
string method
HTTP method. If absent, it's either "GET" or "POST" depending on the data field above.
table headers
Additional headers to add to the request as key-value pairs.

Returns

number code
HTTP status code, or 0 on failure.
string body
HTTP response body or nil on failure.
table headers
HTTP response headers as key-value pairs or nil on failure or option parameter above is nil.

Compile From Source

While lua-https will be bundled in LÖVE 12.0 by default, it's possible to compile the module from source and use it on earlier version of LÖVE. Grab the source code at https://github.com/love2d/lua-https. All compilation requires Lua 5.1 (or LuaJIT) headers and libraries available.

Windows

Compilation is done using CMake. This assume MSVC toolchain is used. Change "x64" to "Win32" to compile for x86 32-bit platform or "ARM64" for ARM64 platform.

cmake -Bbuild -S. -A x64 -DCMAKE_INSTALL_PREFIX=%CD%\install
cmake --build build --config Release --target install

https.dll can be found in the install folder.

Linux

Compilation is done using CMake. Ensure you have OpenSSL and cURL development libraries installed to enable all supported Linux backends.

cmake -Bbuild -S. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PWD\install
cmake --build build --target install

https.so can be found in the install folder.

Android

Available since LÖVE 11.4
Proper 3rd-party C module support requires this LÖVE version.

Compilation is done by placing lua-https source code in <love-android>/love/src/jni/lua-modules. The structure will look like this:

<love-android>/love/src/jni/lua-modules/lua-https
+ example
+ src
+ Android.mk
+ CMakeLists.txt
+ java.txt
+ license.txt

Afterwards compile love-android as usual. The modules will be automatically embedded to the APK. This can be verified by checking the APK with Zip viewer application and inspecting files in lib/arm64-v8a and lib/armeabi-v7a.

See Also



Other Languages