SpruceKit
SpruceID
  • 🌲SpruceKit Introduction
    • Decentralized Identity Overview
    • Glossary
  • ⚡Quickstart
  • SpruceKit Mobile
    • SpruceKit Showcase App
      • Installation
      • Getting Started
      • Issue a Showcase Credential
      • Present a Showcase Credential
    • SpruceKit Mobile SDK
      • Introduction
      • Core Components
        • StorageManager
        • KeyManager
        • CredentialPack
        • Card
        • IsoMdlPresentation
        • mDocReader/IsomDLReader
        • Document Scanner
      • SpruceKit iOS SDK
        • Installation
        • Build a Wallet
          • Accept a W3C VC
          • Present a W3C VC
          • Present mDL in-person/offline
          • Present an mDL over the internet
        • Build a Verifier
          • Verify a W3C VC
          • Verify an mDL in-person/offline
          • Verify an mDL over the internet
      • SpruceKit Android SDK
        • Installation
        • Build a Wallet
          • Accept a W3C VC
          • Present a W3C VC
          • Present an mDL in-person/offline
          • Present an mDL over the internet
        • Build a Verifier
          • Verify a W3C VC
          • Verify an mDL in-person/offline
          • Verify an mDL over the internet
  • Verifiable Digital Credentials
    • ⚙️DIDKit
      • Installation
      • Core Concepts
      • DID Methods
      • Runtime Configuration
      • Specifications and Dependencies
      • Quickstart
      • DIDKit Packages
        • Command Line Interface
        • HTTP Server
        • Rust Crate
        • C Interface
        • Java and Android
        • Python
        • Javascript
      • DIDKit Examples
        • Core Functions (CLI)
        • Core Functions (HTTP)
        • did-web in minutes
        • Batch Generation & Verification
    • 🪪ISO mDL
      • Quickstart
      • Core Concepts
      • User Guide
  • Schema Definition Language
    • 🔗TreeLDR
      • TreeLDR Quickstart
        • First Schema
        • Compilation into JSON Schema
        • Compilation into JSON-LD Context
        • Writing a Layout
        • Simple Rust Integration
      • Types
        • Literal Types
      • Layouts
        • Primitive Layouts
        • Literal Layouts
        • Enumeration
        • Array Layout
        • References
      • Compiling
        • Schema Definition Formats
          • JSON Schema
          • JSON-LD Context
          • Resource Description Framework (RDF)
        • Programming Languages
          • Compiling to Rust
      • RDF Vocabulary
      • 💡TreeLDR Basics
        • Types and Layouts
        • Properties
        • Syntax
  • Witness for Credential Claims
    • 🔭Rebase
      • Core Library
      • Rust Client/Witness SDK
      • WASM Client SDK
      • Simple "Basic Post" Schema
      • DNS Witness Flow Schema
  • References
    • Contributing
    • Code of Conduct
Powered by GitBook
On this page
  • At a Glance
  • Why Rust
  • Crates.io

Was this helpful?

  1. Verifiable Digital Credentials
  2. DIDKit
  3. DIDKit Packages

Rust Crate

PreviousHTTP ServerNextC Interface

Last updated 1 year ago

Was this helpful?

At a Glance

  • Our core libraries are built in Rust and we are active members of the growing Rust community.

  • Our code comments inside the core libraries auto-generate an authoritative and comprehensive at each versioned release through the package manager.

  • Installation via the package manager is the easiest way to get started.

  • Instructions for building manually can be found on the main installation page.

Why Rust

Spruce is very proud to have built these core products to date using the Rust language, which offers a secure, performant, and memory-safe alternative to the dominant web development languages of today.

Crates.io

DIDKit can also be downloaded & updated from crates.io, Rust's native package manager, from inside of other Rust projects. DIDKit (and its underlying ssi crate) can be called as library dependencies inside of a Rust environment, but they are not targets in crates.io, (and thus, cannot be installed by a simple cargo install call).

Note that many of the DIDKit functions and traits in turn call functions and traits in , a separate package/crate on which it depends. Similarly, each DID method that you want a given DID Kit instance to implement is also distinct library (rather than simply a trait), so constraining a specific instance of DIDKit to a specific subset of available DID Methods is best achieved by modifying the [dependencies] section of the /lib/Cargo.toml file.

⚙️
Rust Documentation site
crates.io
crates.io
ssi