Skip to content
Auto generated AWS SDK for Lua
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
apis Update AWS SDK Nov 5, 2018
aws-sdk FIx require path Nov 5, 2018
tests Updated tests to match request signer changes Oct 26, 2017
.gitignore Started adding unit tests Sep 1, 2017
.travis.yml Added readme Aug 18, 2017
game.project Updated API generator to always use the latest version of an API spec Nov 5, 2018

Build Status

AWS SDK for Lua (beta)

Unofficial AWS SDK for Lua, available for LuaJIT and Lua 5.1 and later.

The SDK is still in development and should not be considered production ready.

For release notes, see the CHANGELOG.



You can use the AWS SDK for Lua in your own project by adding this project as a Defold library dependency. Open your game.project file and in the dependencies field under project add:

Or point to the ZIP file of a specific release.


The SDK is currently not distributed via LuaRocks. LuaRocks distribution will happen once the SDK is stable and moved out of beta.


Using the AWS SDK for Lua is a simple process requiring only a few steps of configuration:

-- Configure AWS to work with Defold (specifically to use http.request() provided by the Defold engine to make HTTP calls)
local config = require "aws-skd.core.config"
config.use_defold()		-- or config.use_corona() or config.use_luasocket()

-- Set access key and secret access key from game.project
local credentials = require "aws-sdk.core.credentials"
credentials.set(sys.get_config("aws.access_key"), sys.get_config("aws.secret_access_key"))

-- Initialise the AWS service to use, in this case GameLift
local gamelift = require "aws-sdk.gamelift"
gamelift.init({ region = "eu-central-1" })

-- Make a call to a GameLift endpoint
local input = gamelift.CreateGameSessionInput({
	CreatorId = "c6e209af-4ac0-47b4-c752-60f81db6d2d0",
	AliasId = "alias-4cfbed10-a54d-4e9f-8bc0-ba7f98a6ef40",
	Name = "My session",
	MaximumPlayerSessionCount = 10
gamelift.CreateGameSessionAsync(input, function(response, error_message)
	if not error_message then

Known Limitations

GameLift is the only service that has been properly tested.

Generating code

The SDK generates the code for all AWS services, their input and output including input validation. The code generator uses official AWS SDK API definitions from the AWS SDK for Javascript project. The code generator uses a Mustache template and a small Python script to parse the API definitions and outputs one Lua file per AWS service. You can run the generator yourself from a terminal:


The script reads the definition files from apis/ folder and outputs generated code to the aws-sdk/ folder.

Getting Help

Please use these community resources for getting help. We use the GitHub issues for tracking bugs and feature requests and have limited bandwidth to address them.

Opening Issues

If you encounter a bug with the AWS SDK for Lua we would like to hear about it. Search the existing issues and try to make sure your problem doesn’t already exist before opening a new issue. It’s helpful if you include the version of the SDK and the Lua version you’re using. Please include a stack trace and reduced repro case when appropriate, too.

The GitHub issues are intended for bug reports and feature requests. For help and questions with using the AWS SDK for Lua please make use of the resources listed in the Getting Help section. There are limited resources available for handling issues and by keeping the list of open issues lean we can respond in a timely manner.


This SDK is distributed under the Apache License, Version 2.0, see LICENSE.txt for more information.

Third-party code used

The SDK uses code from the following projects:

You can’t perform that action at this time.