A Minimal Windows SDK.

Overview

Minimal Windows 10 SDK

Installs only the necessary Windows 10 .lib files to save you having to download the full Visual Studio package. You can either download the zip file or the installer.

How to Install

First Visual Studio needs to be installed, but not as much as usual. Using powershell:

> Invoke-WebRequest https://aka.ms/vs/16/release/vs_buildtools.exe -OutFile vs_buildtools.exe
> .\vs_buildtools --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 --add Microsoft.Component.VC.Runtime.UCRTSDK

This will install the Visual Studio package manager then open up the GUI installer. You can click straight on install. All the necessary components are already selected.

Wait for that to finish then run this installer. Alternatively, see Manually Install Only the Libs.

> Invoke-WebRequest https://github.com/ChrisDenton/minwinsdk/releases/download/0.0.1/minwinsdk.exe  -OutFile minwinsdk.exe
> .\minwinsdk

If all goes well you should finally be able to install rustup

> Invoke-WebRequest https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe -OutFile rustup-init.exe
> .\rustup-init -y --default-host x86_64-pc-windows-msvc

Manually Install Only the Libs

Download Minimal.Windows.SDK.zip and unzip it somewhere nice. You may want to set the LIB environment variable for your default target.

Using the libs

If you used the installer or manually set the LIB environment variable then it should "just work" for the default target. If using another target you may need to set the library search path appropriately. You can do this globally in your cargo configuration file. By default it's located at %USERPROFILE%\.cargo\config.toml but you might need to create it.

Add this to the config (replacing path\to\libs with the folder the libs are in):

[target.x86_64-pc-windows-msvc]
rustflags = [ "-L", "path\to\libs\x64"]

[target.i686-pc-windows-msvc]
rustflags = [ "-L", "path\to\libs\x86"]

[target.aarch64-pc-windows-msvc]
rustflags = [ "-L", "path\to\libs\arm64"]

[target.thumbv7a-pc-windows-msvc]
rustflags = [ "-L", "path\to\libs\arm"]

Limitations

  • I have not yet tested that all the imports work.
  • These libs do not (yet?) include ucrt.lib.
  • I only provide an x86_64 installer. There's no inherent reason for this, it's just that I'm being lazy.
  • I wrote this in a very short space of time so this should be considered alpha quality software (if we're being very generous). Honestly it's probably better to just download the zip file and install the libs manually. That way you'll avoid any scary warnings berating you for downloading software from the internet. Which you should never do. 👀

The future

This should become obsolete once Rust has raw-dylibs.

You might also like...
This crate reimplements Gelato's Relay SDK in Rust

Gelato Relay SDK This crate reimplements Gelato's Relay SDK in Rust. It simply wraps Gelato Relay requests and responses to/from Gelato endpoints with

Open-Source Gamestreaming SDK
Open-Source Gamestreaming SDK

RhinoStream SDK OpenSource AppStream SDK aims to be (or GameStream) equivalent of FFMpeg or GStreamer aimed for use by developers. Stats for 2560x1440

A universal SDK for FDU. Powered by Rust.

libfdu A universal SDK for FDU. Building You need Rust Nightly installed: $ rustup default nightly Build the library by running: $ cargo build or $ ca

mirrorworld-sdk-rust

Usage Clone project code. git clone [email protected]:mirrorworld-universe/mirrorworld-sdk-rust.git cd mirrorworld-sdk-rust run. cargo run test. cargo te

Move VM for the Cosmos SDK

NovaVM Move VM for the Cosmos SDK. It allows you to compile, initialize and execute Move smart contracts from Go applications, in particular from x/mo

The Ink! smart contract SDK for XVM interface

Ink! XVM SDK The Ink! smart contract SDK for XVM interface. This SDK contains contract wrappers and all middleware code to make XVM development easy.

Rust SDK for interacting with the Nile.

Nile API Rust Client This is a POC Rust client for the Nile API. Usage Source the Nile environment variables into your environment. export NILE_DEVELO

Rust for the DirectStorage SDK (unofficial)

Rust for the DirectStorage SDK (unofficial) This crate lets you call any DirectStorage SDK API using code generated from the metadata describing the A

🦀 Hop server side SDK for Rust

hop-rs (wip) Hop's Rust library. Requires Rust 1.61+ Installation [dependencies] hop = "0.0.0" Usage Create a project token or personal access token.

Releases(0.0.1u)
Owner
null
A Software Development Kit (SDK) for Zero-Knowledge Transactions

Aleo SDK The Aleo SDK is a developer framework to make it simple to create a new account, craft a transaction, and broadcast it to the network. Table

Aleo 270 Jan 5, 2023
flow-rust-sdk utilizes the Flow gRPC AccessAPI to make requests on the flow blockchain.

Welcome to the Flow-Rust-SDK! We're glad to have you here. There are a few important items that we should cover real quick before you dive in. Version

null 8 Jul 26, 2022
Helper library for interacting with Terra assets (SDK coins and CW20 tokens)

terra-asset Helpers for interacting with Terra assets, including native coins and CW20 tokens Usage This crate contains two struct types: AssetInfo st

larry 9 Jan 3, 2022
Pokémon TCG SDK - Rust

Pokémon TCG SDK - Rust This is the Pokémon TCG SDK Rust implementation. It is a wrapper around the Pokémon TCG API of pokemontcg.io. Usage Configurati

Pokémon TCG Developers 2 Dec 14, 2022
Rustcoin - A LightWeight SDK For Bitcoin, Ethernum

Rustcoin - A LightWeight SDK For Bitcoin, Ethernum

Rust Coin 6 Jan 24, 2022
A template to build smart contracts in Rust to run inside a Cosmos SDK module on all chains that enable it.

CosmWasm Starter Pack This is a template to build smart contracts in Rust to run inside a Cosmos SDK module on all chains that enable it. To understan

null 1 Mar 7, 2022
Smart Contract built in Rust to run inside Cosmos SDK module on all chains that enable it

CoinSwap is a Smart Contract that is built on the terra blockchain and can be used to swap cryptocurrencies such as LUNA, UST, TerraUSD, Anchor, Mirror Protocol, LUNI and other CW20 tokens. The Project also contains a smart contract which works as a analysis tool for the gas fees on the Terra Blockchain.

Prajjwal Chittori 9 Oct 11, 2022
Lazerpay SDK for Rust 🦀

?? Lazerpay Rust SDK This crate integrates the Lazerpay payment gateway for accepting cryptocurrency payments. Usage Add the following to your cargo d

Lord_Sarcastic 15 Sep 21, 2022
tulipv2 vaults and v1 lending program sdk & examples

tulipv2-sdk Warning Unaudited, possibly untested sdk Tulip Protocol takes no responsibility for any (financial, physical, emotional, etc..) damage tha

Tulip Protocol 16 Oct 26, 2022
Longbridge OpenAPI SDK Base.

Longbridge OpenAPI SDK Longbridge OpenAPI provides programmatic quote trading interfaces for investors with research and development capabilities and

Longbridge 18 Nov 30, 2022