What Is a Software Development Kit?

Developers rely on software kits to build applications.

Software developers rely on software development kits to build applications within existing frameworks.

A software development kit, also known as an SDK, is a set of tools and shared code libraries that enable software developers to build applications within an already existing framework.

SDKs are the building blocks of applications, providing the tools needed to build and distribute them across multiple platforms. The purpose of SDKs is to ease integration between applications. SDKs usually include the application program interfaces and other tools necessary to integrate with existing systems, as well as all the documentation needed to build programs that interface with those systems.

SDKs can contain a range of components, depending on the app being created. Libraries, application programming interfaces (APIs), and integrated development environments (IDEs) are common in certain SDKs. Testing tools and compilers are also found within many SDKs.

A good SDK should be stable and secure, easy to use, free of bugs, functional, documented, quick to integrate, and scalable. It should consume minimal energy.

Benefits of Using a Software Development Kit

Almost every technology solution has a development kit associated with it. The purpose of an SDK is to give programmers access to the API and help them build applications and software that are compatible with that platform. An SDK contains the building blocks needed to get the job done.

A basic SDK should include: Implementing an SDK includes the following benefits:
  • Compiler
  • Debugger
  • APIs
  • Documentation
  • Libraries
  • Editors
  • Runtime and development environments
  • Testing and analysis tools
  • Drivers
  • Network protocols
  • Basic testing project
  • Cost savings (it is free to the user)
  • Access to and understanding of how the platform works
  • Extensive documentation and code libraries
  • Documentation to help with the debugging process
  • Access to lower-level APIs, which is helpful for seamlessly porting applications to other platforms
  • Extensive testing tools
  • Simplified processes and increased functionality
  • Compatibility with many different programming languages
  • Time savings
  • Enhanced functionality
  • Increased brand credibility
  • Customization possibilities

APIs vs. SDKs

APIs are bits of code that enable developers and software programs to communicate with each other. An SDK has all the tools a developer needs to get started with developing an application. APIs cannot be used to create new applications; their job is to allow communication between the applications. The API can usually be found within the SDKs themselves, and there are many kinds that serve different functions.

Think of the SDK as the backbone or framework of the program; within that framework is an API capability that makes communication and integration between applications possible. SDKs hold APIs, but APIs do not hold SDKs.

How Can Wind River Help?

The VxWorks SDK provides APIs, debugging capabilities, and more

The VxWorks SDK provides developers with APIs, OS documentation, debugging capabilities, and more.

VxWorks

VxWorks®, the premier real-time operating system (RTOS) used to design ultra-reliable and mission-critical embedded systems across multiple industries, offers flexibility, performance, and speed of development. With VxWorks, makers of embedded systems can embrace new mainstream methodologies for development, improve hardware optimization, and maximize their investment in existing IP — all without compromising on reliability or performance.

VxWorks SDK features include:

  • VxWorks APIs for in-kernel and user-level real-time-process (RTP) use
  • The ability to debug from the kernel shell, command line, and Microsoft VS Code
  • Full OS documentation
  • The ability to build other labs.windriver.com projects, including OpenCV and IoT agents

» Learn More about VxWorks » Download the VxWorks SDK

Wind River Labs

Wind River also offers VxWorks developers access to innovative new technologies that include open source projects, prerelease features, and in-house engineering projects through Wind River Labs. Wind River Labs currently provides free access to VxWorks projects for OpenCV, ROS2, and SDKs for cloud platforms such as AWS, Azure, and Google. Access to bleeding-edge technologies and direct collaboration with Wind River engineers let VxWorks customers innovate sooner.

Wind River Labs supports the following platforms:

  • QEMU (x86-64)
  • QEMU (sabrelite)
  • Raspberry Pi 3B/3B+
  • Raspberry Pi 4B
  • UP Squared
  • NXP i.MX 8M Quad Evaluation Kit (EVK)
  • Microchip Polarfire SoC Icicle Kit (RISC-V)
  • Sifive Hifive Unleashed (RISC-V)

» Explore Wind River Labs

Wind River Linux Distro

Wind River Linux Distro is created from our source code–based Linux product. It is a binary distribution intended for intelligent edge solution developers who want to leverage the tremendous investment Wind River has made in embedded device hardware and open source software — but want to avoid the time and effort of building Linux from source.

This distribution provides multiple approaches for solution developers to create a purpose-built Linux OS from binary images. These approaches include micro-start self-deploying images, Linux Assembly Tool (LAT), dnf package feeds, a container base image on Docker Hub, and an SDK. The distribution provides OSTree updates that can be used to deliver fixes or even upgrade images to a new release. Solution developers can create their own images, containers, packages and package feeds, and even their own OSTree update feeds.

Wind River Linux Distro is the best choice for rapid prototyping and deployment when there is limited need for Linux kernel customization. It generally requires significantly fewer resources than does the Yocto Project–based source product, Wind River Linux.

» Learn More

Wind River Linux Wind River Linux Distro
  • Complete customization
  • Kernel modification
  • Customizations that are cataloged and reproducible in future releases
  • Easy change tracking and image reproducibility
  • Large community of developers for assistance and enhancements
  • No vendor lock-in with Yocto Project alternatives
  • Availability of Yocto Project–compatible layers by third parties
  • App development SDKs that match image contents
  • Smaller platform images, typically
  • Better success for projects on multiple devices
  • Faster time-to-value — minutes rather than days
  • More familiar approach for casual Linux users
  • Less effort to create an image
  • Iterative approach possible — less up-front planning required
  • Multiple ways to customize images: LAT, DNF, OSTree
  • Easier learning curve
  • Less collaboration needed for platform and application developers