Skip to content

bplaat/crates

Repository files navigation

Bassie's Rust crates

A collection of minimal Rust crates and tools that I created for myself and others

Crates

Published libraries

These crates are published to crates.io and are more polished and documented

Libraries

These libraries are not published to crates.io and are more intended for personal use but can still be useful

  • bwebview A cross-platform webview library for Rust with minimal dependencies
  • from_enum A FromEnum derive macro library
  • ini A simple INI file parser library
  • js A WIP JavaScript interpreter
  • openapi-generator A simple OpenAPI code generator
  • pbkdf2 A unsecure PBKDF2-HMAC-SHA256 password hashing library
  • small-websocket A simple and small websocket library for the small-http library
  • validate A simple struct validation library
  • validate_derive Validation derive macro's library

Apps

Some desktop apps written with the bwebview library

2048 icon
2048
BassieLight icon
BassieLight
ManExplorer icon
ManExplorer
Navidrome icon
Navidrome

Tools / Websites

Various tools and websites, for the live deployed sites go to crates.bplaat.nl

  • baksteen A brick laying robot simulator
  • bob A simple build system for my projects, because I like the simplicity of Cargo
  • cargo-bundle A simple Cargo plugin the builds macOS app bundles
  • music-dl A tool that downloads complete albums with the correct metadata
  • plaatnotes A simple note-taking app
  • webhook-puller A small service that pulls a Git repo when requested by a webhook

Replacement libraries

These libraries are created as minimal / smaller replacements for common used crates

Repo organization

This repo is organized as a monorepo with Cargo as the main build system. My personal vision is that monorepo's work vary well when there's only one main build system, that acts a single organization point for the whole project with all it's submodules.

So this all Rust code is contained in a single Cargo workspace, that builds everything. Some crates have custom build steps that can run other build scripts / systems like npm and vite.

The meta.sh script is contains all the main tasks, these are used from commandline and also CI. The only modules that use a different build system are the ones in the bob/examples directory, but that is also a show case of the bob build system.

Getting Started

  • Open a posix shell environment when you are on Windows (e.g. Git Bash)

  • Install Rust, Node.js, OpenJDK 21 and clang-format

  • Install Rust nightly rustfmt, cargo-binstall, cargo-deny and cargo-nextest:

    rustup toolchain add nightly --component rustfmt
    curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash
    cargo binstall -y cargo-deny cargo-nextest
  • Run checks, or run an example:

    ./meta.sh check
    cargo run --bin example-persons-api
    cargo run --bin example-todo-app

Additional tools

  • For coverage reports, install the llvm-tools and cargo-llvm-cov tool:

    rustup component add llvm-tools
    cargo binstall -y cargo-llvm-cov
    ./meta.sh coverage
  • To build pages, install a wasm target and the wasm-bindgen-cli tool:

    rustup target add wasm32-unknown-unknown
    cargo binstall -y wasm-bindgen-cli --version 0.2.104
    ./meta.sh build-pages
  • To build macOS app bundles, only on macOS, install targets:

    rustup target add aarch64-apple-darwin x86_64-apple-darwin
    ./meta.sh build-bundle
  • To build and install bins and GUI applications to your system:

    ./meta.sh install

License

Copyright © 2023-2026 Bastiaan van der Plaat

Licensed under the MIT license.

About

A collection of minimal Rust crates and tools that I created for myself and others

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •