mechazoidal + rust   204

GitHub - spacejam/tla-rust: writing correct lock-free and distributed stateful systems in Rust, assisted by TLA+
However, it needs to be noted that when creating lock-free high-performance algorithms, we are going to need to sidestep the safety guarantees of the compiler. Our goal is to create data structures that are mutated using atomic compare-and-swap (CAS) operations by multiple threads simultaneously, and also supporting reads at the same time. We choose not to sacrifice performance by using Mutexes. This means using Rust's Box::into_raw/from_raw, AtomicPtr, unsafe pointers and mem::forget. We are giving up a significant benefit of Rust for certain very high-performance chunks of this system. In place of Rust's compiler, we use the TLA+ model checker to gain confidence in the correctness of our system!
rust  tla  repo:github  formal_methods  piperesearch 
7 hours ago by mechazoidal
nrf-rs · GitHub
Rust on the nRF microcontroller family
repo:github  rust  embedded  pmz 
6 days ago by mechazoidal
redox-os / termion · GitLab
Part of the Redox project: "a pure Rust, bindless library for low-level handling, manipulating and reading information about terminals. This provides a full-featured alternative to Termbox. [...] It is bindless, meaning that it is not a front-end to some other library (e.g., ncurses or termbox), but a standalone library directly talking to the TTY."
osdev  tui  terminal  repo:gitlab  rust  library 
24 days ago by mechazoidal
Wiki - ActuallyUsingCrev
It's got some rough spots, but he likes crev. Like magic-wormhole, this should really be a standard system for non-tech people:
- "The infrastructure in terms of proofs and such is all language-agnostic"
- "if people want to make their own proofs, just doing one crev code review a week will add up fast."
- proofs are generated plaintext, stored in git
rust  signatures  piperesearch  pmz  2019  security  review 
25 days ago by mechazoidal
z0mbie42 / rust_gui_ecosystem_overview · GitLab
"the principal criterion being get the shit done": current (2019/08) winners are Electron+Neon, and QT
rust  reference  gui  piperesearch  repo:gitlab 
25 days ago by mechazoidal
Thoughts on Rust bloat | Raph Levien’s blog
Current culprits appear to be:
- compile-time macros
- polymorphism
- serialization
rust  2019  rant 
26 days ago by mechazoidal
GitHub - quadrupleslap/tether: A barebones Electron-ish library for Rust.
"If you're…
- writing a C or Rust application,
- familiar with HTML, and
- want to painlessly add a cross-platform GUI,
then this is the library for you!"
repo:github  library  rust  webdev  electron 
27 days ago by mechazoidal
GitHub - rusterlium/rustler: Safe Rust bridge for creating Erlang NIF functions
"The library provides facilities for generating the boilerplate for interacting with the BEAM, handles encoding and decoding of Erlang terms, and catches rust panics before they unwind into C. The library provides functionality for both Erlang and Elixir, however Elixir is favored as of now."

Intro post: http://hansihe.com/2017/02/05/rustler-safe-erlang-elixir-nifs-in-rust.html
erlang  elixir  rust  repo:github  ffi  library 
27 days ago by mechazoidal
Implement graph-like datastructure in Rust - Stack Overflow
Noted that if you don't need the complexity of petgraph, try using a TypedArena for the most simplest solution
2016  rust  datastructures 
4 weeks ago by mechazoidal
Are we web yet? » AWWY?
Collecting web resources+crates for Rust
rust  webdev  web  reference 
6 weeks ago by mechazoidal
GitHub - makepad/makepad: Code your design. Rust based authoring tool for 2D design and animation using code.
@trishume: "It’s a work-in-progress editor that uses an imgui-esque custom UI toolkit to render everything, making heavy use of the GPU. Layout and highlighting for the entire file is calculated every single frame by highly optimized code. This will drop frames on rare 10k line files, but for all other files allows fancy things other editors couldn’t easily do like pressing alt to smoothly animate into an overlay of the functions in the whole file."

Some other good points in here to read PR. Note however they reserve the right to take it private due to money reasons.
rust  facme  piperesearch  repo:github  gui  editor 
7 weeks ago by mechazoidal
GitHub - jonhoo/inferno: A Rust port of FlameGraph
Note that this is if you want to generate flamegraphs directly in Rust code: if you just want a reporting tool, see cargo-flamegraph
rust  library  visualization  repo:github 
7 weeks ago by mechazoidal
GitHub - ferrous-systems/flamegraph: Easy flamegraphs for Rust projects and everything else, without Perl or pipes <3
[cargo-] flamegraph: this is a tool for your project, "Built on top of @jonhoo's wonderful Inferno all-rust flamegraph generation library!"
repo:github  rust  visualization  debugging  tools 
7 weeks ago by mechazoidal
The smooth resize test | Raph Levien’s blog
Note the subtleties in this, and note the discussion in the linked winit GitHub issue
graphics  gui  piperesearch  rust 
12 weeks ago by mechazoidal
GitHub - tailhook/probor: A protocol on top of CBOR that provides protobuf-like functionality
Note that it was designed for rust 1.15, and is more of a POC. It's still an interesting idea.
cbor  capnproto  repo:github  serialization  piperesearch  rust 
may 2019 by mechazoidal
nalgebra.org/
Use the nalgebra-glm crate for a GLM experience
rust  library  programming  math  piperesearch 
may 2019 by mechazoidal
2D Graphics on Modern GPU | Raph Levien’s blog
Note that he is using Metal 2.1, and focusing on the most modern hardware. A lot of good insight all around!
PR: note the Serialization chapter, where most typical data structures don't work well on GPUs(like winged-edge??)
graphics  rust  metal  2d  2019  gpu 
may 2019 by mechazoidal
GitHub - pcwalton/pathfinder: A fast, practical GPU rasterizer for fonts and vector graphics
Uses OpenGL (+ES), should work on most gpu cards from the past 5-10 years. Implements a subset of the html5 canvas API. Still early and buggy.
rust  library  piperesearch  vector  2d  gpu  opengl  repo:github 
may 2019 by mechazoidal
Implementing tile encoding in rav1e · ®om's blog
Note how he handles views into matrices, while remaining memory-safe
matrix  rust  programming  video_software  pipeline 
april 2019 by mechazoidal
Things I Enjoy in Rust: Error Handling | Lobsters
burntsushi: "If you don’t have the need for defining each error type individually, then you don’t have to, and you can use Box<Error> instead.

This isn’t code I find myself writing that much. Usually once per crate. And it’s not something that takes a lot of time to write."
rust  tips  errors  programming  lobsters  comment 
april 2019 by mechazoidal
An experimental new type inference scheme for Rust
The current type system of Rust, since 2014. Note that it is NOT a full H-M system, but keeps things the same from a user perspective
rust  programming  types  reference  2014 
april 2019 by mechazoidal
GitHub - lotabout/skim: Fuzzy Finder in rust!
A clone of fzf in Rust. Available through cargo: either use the binary directly, or use it as a crate to give your rust program a fuzzy-finder(via BufRead)!
rust  repo:github  CLI  tools  library  facme  fzf 
april 2019 by mechazoidal
GitHub - fastly/lucet: Lucet, the Sandboxing WebAssembly Compiler.
As of 2019/03 the runtime only supports x86_64 Linux, but it's early.
pmz: consider the note about WASI being an interface for a Dis-like system in Inferno (which was echoed by some lobsters comments). Since this is in Rust, it also opens the question of doing an Inferno os using Rust and WASI, instead of C and Dis.
webassembly  rust  compilers  wasi  pmz  repo:github 
march 2019 by mechazoidal
GitHub - xi-editor/druid: Data-oriented Rust UI design toolkit.
PR: (from Reddit discussion post) "In fact, Raph and the VST group have begun discussions on making a GUI window that fits the needs of a VST plug-in window (a DAW host owns the plug-in's window and this complicates managing UI events). "
(although, how does arcan deal with that type of scenario?)
rust  gui  library  piperesearch 
february 2019 by mechazoidal
yoanlcq/vek: Generic 2D-3D math swiss army knife for game engines, with SIMD support and focus on convenience.
Note it is purely math for games: no general-purpose maths, no physics/gui/animation/dsp.
Mostly vectors, low-dimension matrices, curves, and bounding boxes (plus generic traits)
repo:github  piperesearch  rust  library  math 
february 2019 by mechazoidal
Rust: A unique perspective
spacejam@lobsters: "This connects pretty well with how I like to introduce these concepts while giving rust trainings. Thinking about mutable vs immutable borrows similarly to RwLocks (for crowds that have concurrency experience) really makes it click effectively."
rust  programming  2019  memory 
february 2019 by mechazoidal
GitHub - pest-parser/pest: The Elegant Parser
Based on PEGs, faster than nom, uses separate grammar files? It's a parser generator, not a parser itself.
(although some reddit comments snidely note the graphs are off, so it may not have as much of a speed advantage)
rust  library  parser  repo:github  peg 
january 2019 by mechazoidal
GitHub - RazrFalcon/resvg: An SVG rendering library.
A pure Rust library for rendering SVG(aiming for a static SVG Full 1.1 subset). Unlike librsvg it is not tied to any other os dependencies. It does not attempt to cover any animations.
svg  rendering  library  rust  repo:github 
january 2019 by mechazoidal
GitHub - chinedufn/landon: A collection of tools, data structures and methods for exporting Blender data (such as meshes and armatures) and preparing it for your rendering pipeline.
"The goal [...] to be a minimal suite of heavily tested, well documented tooling for getting data out of Blender and a set of functions for pre-processing that data so that you can make use of it in your rendering pipeline.

The goal is that getting data out of Blender and into your rendering pipeline becomes easy as pie."
piperesearch  rust  repo:github  tools  blender  cg  graphics 
january 2019 by mechazoidal
GitHub - linebender/kurbo: A Rust library for manipulating curves
"contains data structures and algorithms for curves and vector paths. It is probably most appropriate for creative tools, but is general enough it might be useful for other applications."
rust  library  graphics  curves  math 
december 2018 by mechazoidal
A hammer you can only hold by the handle - Systems Group Blog
Using the Rust type system to better enforce invariants in things like timely dataflow. Shows an example of writing an HTTP handler.
rust  types  programming  piperesearch 
november 2018 by mechazoidal
Ogeon/palette: A Rust library for linear color calculations and conversion
"It provides both precision tools that lets you work in exactly the color space you want to, as well as a general color type that abstracts away some of the technical details. [...] This library is only meant for color manipulation and conversion. It's not a fully features image manipulation library. It will only handle colors, and not whole images. There are features that are meant to work as bridges between Palette and other graphical libraries, but the main features are limited to only focus on single pixel operations, to keep the scope at a manageable size."
rust  library  graphics 
august 2018 by mechazoidal
Zero cost stack overflow protection for ARM Cortex-M devices | Embedded in Rust
Using a linker script to swap position of the stack, so an overflow will hit a ram barrier instead of smashing static data.

Caveat: "The approach described here doesn’t help if you are using threads, where each one has its own stack. In that scenario the thread stacks are laid out contiguously in memory and no amount of shuffling around will prevent one from overflowing into the other. There pretty much your only choice is to use a MPU (Memory Protection Unit) – assuming your microcontroller has one – to create stack boundaries on demand. "
arm  programming  embedded  rust  reference 
august 2018 by mechazoidal
Syntax diagram generator
"The syntax of rust's macros can get out of hand very quickly and it can be very hard to understand what input-pattern a macro requires. This library aims at helping to remedy this situation. Diagrams are generated fully automatically from rust-source as Scalable Vector Graphics, using customizable CSS for layout."
rust  tools  visualization  diagrams  programming  library 
august 2018 by mechazoidal
GitHub - andreasfrom/piecetable: Piece Table in Rust for efficient sequential insertion and removal (unmaintained)
"Implementation of a piece table in Rust for storing text for efficient editing. [...] Note: This library is not maintained or properly tested. I recommend forking it or writing a piece table from scratch if you need one."
datastructures  rust  repo:github  reference  text  editor 
august 2018 by mechazoidal
GitHub - nical/lyon: 2D graphics rendering experiments in rust.
"For now the goal is to provide efficient SVG-compliant path tessellation tools to help with rendering vector graphics on the GPU. For now think of this library as a way to turn complex paths into triangles for use in your own rendering engine."
rust  gpu  2d  library  repo:github 
may 2018 by mechazoidal
Speeding up RGB to grayscale conversion in Rust by a factor of 2.2 – and various other multimedia related processing loops – coaxion.net – slomo's blog
Note praise for "faster" crate once it gets some extra features, and compare this article to use of the "rgb" crate(color conversion, striding, author's submission of "exact_chunks" to stdlib)
rust  optimization  profiling  assembly  reference  2018 
may 2018 by mechazoidal
RustAudio · GitHub
"An aggregate of audio libraries and functions written in Rust"
libraries  audio  rust  repo:github 
may 2018 by mechazoidal
« earlier      
per page:    204080120160

related tags

2d  3d  9p  afl  analysis  analytics  arduino  arm  assembly  asspad  asynchronous  ats  audio  autoconf  avr  benchmarking  blender  blog  bootstrapping  bsd  build  c  c++  caching  capnproto  cbor  cg  cheatsheet  ci  cli  clojure  comment  comments  compilers  compression  concurrency  console  crdt  crev  curves  database  databases  dataflow  datastructures  debugging  deprecated  diagrams  discussion  distributed  dsp  dvcs  d_language  editor  electron  electronics  elixir  elm  embedded  erlang  errors  esp8266  eve_language  facme  ffi  fonts  formal_methods  from:medium  frp  fuse  fuzz  fzf  gamedev  games  gc  github  golang  gpu  graph  graphics  grep  gstreamer  gui  haskell  hex  hg  howto  immutability  infrastructure  inspiration  interpreter  iot  l-systems  l4  language  learning  libraries  library  linear_algebra  lisp  llvm  lobsters  logging  logic  lua  make  manufacturing  math  matrix  memory  metal  metrics  multimedia  networking  opengl  optimization  os  osdev  osx  paper  parser  pdf  peg  performance  pipeline  piperesearch  plugin  pmz  post  postmortem  powershell  presentation  productivity  profiling  programming  proof  qa  qt  quic  quickcheck  quiz  rant  raytracer  reddit  reference  relational  rendering  repo:github  repo:gitlab  report  resource  review  roguelike  rtfm  rtos  rust  schema  scripting  search  security  serialization  shell  signatures  simd  software  software_development  sort  sqlite  svg  syntax  sysadmin  terminal  testing  text  thesis  threads  tips  tla  tools  tui  tutorial  tutorials  tweet  types  unikernel  unix  vector  video:youtube  video_software  vim  visualization  vulkan  wasi  web  webapp  webassembly  webdev  wiki  x86  xi_editor  zeromq 

Copy this bookmark:



description:


tags: