SDKs, Libraries and Platforms

In SSI ecosystems, the actual functionality to create DIDs or issue credentials tends to be wrapped up in some sort of Software Development Kit, library or platform.

Explanation of terms used

What is a Library?

A library is a packaged, reusable chunk of code that performs a certain function or set of closely related functions. You can insert a library into your application and call it when you need to implement that function without having to write the code from scratch. Suppose that instead of an application, you are building a house. One of the things you will need for that house is a stove, but it will not be very practical for you to build it from scratch when you could just buy one off the shelf. A library is to an application what the stove is to that house. Source​

What is an SDK?

An SDK is a collection of libraries, APIs, documentation, utilities, and/or sample code that help you implement certain features without having to do the work from scratch. SDKs vary in scope and function from implementing a feature or set of features, like an analytics SDK for instance, to building whole applications for a specific platform. Going back to our house analogy, if a library is a stove, then an SDK is a whole kitchen. While you can go and buy all your kitchen appliances, cabinets, and counters separately, it will be a lot easier to buy a full kitchen set, complete with built-in appliances and instructions on how to assemble it. SDKs can be limited in scope such as in the case with one room, but they can also have a bigger scope of a collection of rooms or even the whole house.

What is a Platform?

Within SSI, a Platform is generally a product, which provides a selection of software components, of which an SDK is part of the product. This may include an SDK with an API interface, external connectors to legacy systems, additional drivers for DID method support, additional storage support options, mobile wallet SDKs, developer tools such as specific Command Line Interfaces (CLIs)

What is the function of APIs with SDKs and Libraries?

Short for Application Programming Interface. This term refers to the “face” of a library, or the access point, for a given application. APIs may also be form part of an SDK. The difference being that a library/SDK refers to the content itself, whereas an API refers to the interface, to call the content. Going back to the house analogy, an API is a knock on the door, or a ring of the doorbell, in order to gain access to the house.

SDKs, Libraries and APIs in Decentralised Identity

In order to carry out any function within a decentralised identity ecosystem, such as creating a DID, schema or issuing a Credential, an organisation must interact with a specific SDK or set of APIs to carry out this action. For this reason, companies have created their own Libraries, SDKs and Platforms to offer these services to clients.