The AWS Greengrass Core SDK for C provides an interface to interact with the Greengrass Core system on the edge. It is c89 compliant and is meant to be performant while minimizing dependencies. The build will produce a shared object named libaws-greengrass-core-sdk-c.so under the build/aws-Greengrass-core-sdk-c directory. This is the shared object that the Lambda executable links to. The shared object is a stub implementation that helps Lambda executables to link against. It will be overridden by the actual shared object that comes with the Greengrass Core release bundle. The -Wl,--enable-new-dtags flag is needed for adding the Greengrass C SDK shared object path into the Lambda executable's RUNPATH, so that the stub shared object can be overridden by the libaws-greengrass-core-sdk-c.so which comes along with the Greengrass Core Release bundle. It is automatically included when linking to the aws-greengrass-core-sdk-c.
Features
- You can use CMake to build Greengrass Lambda executables
- After the Lambda executable is built, it should be packaged into a deployment packag
- Every API request must be initialized using gg_request_init() before making the actual request
- Requires cmake 2.8+
- Requires Greengrass Core 1.6+
- Requires libc 2.14+