A Software Development Kit, or SDK for short, is typically a set of development tools that allows a software engineer to create applications for a certain software package, software framework, hardware platform, computer system, operating system or similar.

It may be something as simple as an application programming interface in the form of some files to interface to a particular programming language, or include sophisticated hardare to communicate with a certain embedded system. Common tools include debugging aids and other utilities.

A software engineer typically receives the SDK from the target system developer. Often times, the SDK can be downloaded directly via the Internet. Many SDKs are provdided for free to encourage developers to use the system or language. Sometimes this is used as a marketing tool. For example, Foo Products might provide the Widget SDK for free to encourage people to use it. In turn, more people will be encouraged to buy more of their widgets since they can program them for free.

SDKs may have attached licenses that make them unsuitable for Free software development.

Examples

See also: Application programming interface