Jump to section

What is an SDK?

Copy URL

A software development kit (SDK) is a set of tools provided by the manufacturer of (usually) a hardware platform, operating system (OS), or programming language.

An API is included in most SDKs in order to connect new mobile apps or projects at the source-text level, in the command line. They also often include code samples, which give developers example programs and libraries to help them learn how to build basic programs. From there, they can move on to optimization and developing complex apps more easily, as well as debugging and adding new features as needed.

Some SDKs include documentation on how to use the APIs, as well as tutorials, FAQs, and sample graphics—since it can sometimes take a while for a developer to learn how to use a new SDK. For this reason, an intuitive programming or user interface (or more extensive documentation) is helpful in encouraging developers to use one company’s particular program instead of a competitor’s option.

Similarly, an SDK can be a great way for a company to introduce developers to their product and encourage them to create apps using their platform or OS, in real time, in an integrated development environment. For this reason, most SDKs are free to use—a developer can just download it and start programming immediately. 

Some SDKs may have rules or agreements that must be acknowledged and submitted to before they can be used—especially for new products in an alpha or beta stage—or for software with algorithms that aren’t disclosed to the public (not open source). An SDK can also be subject to a license agreement, so that the software that’s created doesn’t get released under an incompatible license.

A developer needs to take these things into consideration when choosing which SDK to start working with. For instance:

  • An SDK with a proprietary license is incompatible with the development of open source software.
  • SDKs with a General Public License (GPL) won’t work for developing proprietary apps
  • There are caveats to working around a Lesser General Public License (LGPL) for projects with proprietary code elements. 

Open source applications are developed continuously, by amateurs and professionals, because their SDKs allow for the coding of new designs and functionality expansions, which are then shared with the rest of the community. 

Red Hat brings together the best tool, solutions, and service in application development, and we do it the open source way. Whether you’re searching for a platform to build your app on (Red Hat OpenShift), a runtime environment to build them in (Red Hat Runtimes), or a development environment with all the tools needed to develop, debug, test, and deploy applications, Red Hat has you covered.

Keep reading


Stateful vs stateless

Whether something is stateful or stateless depends on how long the state of interaction with it is being recorded and how that information needs to be stored.


What is Quarkus?

Quarkus is a Kubernetes-native Java stack made for Java virtual machines (JVMs) and native compilation, optimizing Java specifically for containers.


What is serverless?

Serverless is a cloud-native development model that allows developers to build and run applications without having to manage servers.

More about cloud-native applications


An enterprise application platform with a unified set of tested services for bringing apps to market on your choice of infrastructure.



Free training

Developing Cloud-Native Applications with Microservices Architectures