Skip to content

Instantly share code, notes, and snippets.

@ash-dvlpr
Last active May 14, 2024 15:58
Show Gist options
  • Save ash-dvlpr/1d26db950ce59ec0ee5647851ae382f4 to your computer and use it in GitHub Desktop.
Save ash-dvlpr/1d26db950ce59ec0ee5647851ae382f4 to your computer and use it in GitHub Desktop.
Software Development Resources

Project Management:

Software Development Resources

  • Handmade Network => Community of people that prefer hand making systems over using premade libraries.
  • Graphics Programming Resources => Collection of usefull resources for learning about Graphics Programming.
  • BallDontLie => Public API for fetching NBA related data. Usefull for testing stuff.

Debuggers

  • gdb => Debugger for gcc executables.
  • lldb => Debugger for llvm executables.
  • WinDbg Preview => GUI debugger for msvc executables.

Rust Development

Usefull Crates

General

  • tokio => Async executor and framework for building IO bound applications.
  • rayon => High-level library for parallel computation.
  • serde => Data structure serialization and de-serialization.
  • thiserror => Derive macro for custom std::error Errors, easy to use and flexible.
  • bitflags => Macro for creating custom bitflags with binary operators supported.
  • lazy_static => Macro for declaring lazily evaluated statics.
  • phf => Generate Compile Time lookup tables with Perfect Hash Functions.
  • cfg_aliases => Create cfg aliases in build.rs.
  • geese => Simplistic Event Loop.
  • libloading => Allows loading and using of dynamic libraries. Abstracts away the platform specific code.
  • hot-lib-reloader => Dev tool to allows hot reloading of libraries to speed up development. Built on top of the libloading crate.

Profiling

  • cargo-flamegraph => Flamegraph generator with builtin rust project support (uses perf/dtrace).
  • env_logger => Simple and configurable Logger (for binaries).
  • log => Logging facade (for libraries).

Terminal Applications

  • clap => Command line argument parsing (video).
  • ratatui => Framework for building Terminal User Interfaces (uses crossterm by default).
  • crossterm => Cross-platform terminal manipulation for text based interfaces.
  • confy => Cross-platform configuration manager for TOML/YAML files (needs serde).
  • dontenv => Grab configurations from a .env file or the enviroment.

Graphics

  • egui => Immediate mode portable GUI Library.
  • eframe => Immediate mode GUI Framework (video).
  • winit => Cross-platform Window creation and management.
  • egui-winit => Bindings for egui and winit interoperation.
  • ash => Lightweight Vulkan API wrapper.
  • ash-window => Cross-platform raw-window-handle vulkan extension requirements.
  • vulkano => Vulkan API wrapper with compile-time shader checking and other safety features.

Databases

  • sled => Simple and lightweight embedded transactional database with a BTreeMap like api.
  • diesel => Schema Migration tool and ORM for PostgreSQL, MySQL and SQLite databases.4
  • sqlx => Toolkit for PostgreSQL, MySQL and SQLite, with compile-time query checking.
  • sea-orm => Schema Migration tool and ORM based on SQLx.
  • r2d2 => A Generic database Connection Pool.

Database Drivers

  • mongodb => Driver for MongoDB databases.
  • postgres => Driver for PostgreSQL databases.
  • mysql => Driver for MySQL databases.
  • sqlite => Driver for SQLite databases.
  • surrealdb => Driver for SurrealDB databases.

Other

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment