We recently released an add-on package for the ASN1C ASN.1 compiler that allows Go code to be generated for encoding and decoding 3GPP layer 3 messages as defined in the NAS LTE and 5G specifications (24.007, 24.008, 24.301, and TS 24.501). The add-on installs ASN.1 specifications that contain special markup that provides an approximation of these message types. It also provides custom Go code snippets that are injected by the compiler into places where custom coding was required.
Our white paper "Using ASN.1 to Describe 3GPP Messages" describes how the ASN.1 was modeled to accomplish this.
The advantage of the SDK addon versus a standard API is that the provided specifications can be modified to support variations and/or future releases of the protocol messages. An evaluation version of the SDK add-on or stand-alone API is available upon request.
Further information is available on our 3GPP NAS API's web page.