r/madeinrust • • 8d ago

Majority AI Coded I built Holm, a fully offline password vault written entirely in Rust, including the UI

Post image
0 Upvotes

Hey Rustaceans!

I'm primarily a Kotlin/Android developer, but recently I started exploring Rust and systems programming.

That led me to build Holm, a free, open-source password vault for macOS, written entirely in Rust, including the UI.

A few technical details:

  • Encryption: Argon2id and XChaCha20-Poly1305.

  • Storage: One encrypted file, with secrets decrypted individually when needed.

  • Memory: Secret types are wiped on drop, with a zeroing allocator.

  • Offline: No network code, cloud, or account.

  • Performance: Around 6 MB app size, about 82 MB RAM when unlocked with 225 items.

  • Testing: 844 tests and 12 fuzz targets.

  • CLI: A separate command-line interface written in Rust.

I used AI extensively while building Holm, both for coding and learning. I also created 71 Rust lessons covering ownership, borrowing, cryptography, memory management, testing, and more. They're available in the repository.

I'd love feedback from experienced Rust developers.

Holm hasn't undergone an independent security audit yet, and I know there's more work to do.

If you're interested in reviewing the architecture, finding bugs, improving security, or contributing code, I'd really appreciate your help.

GitHub: https://github.com/sunnat629/holm

One question: What would you review or improve first in a Rust-based password vault?


r/madeinrust • • 20d ago

Majority AI Coded made a desktop app where you just talk to your PC and it does things (Tauri 2 + a crash-proof local speech worker)

3 Upvotes

Edit: I undersold the part I'm proudest of. With the Android app you can watch your PC's screen live from your phone, from any network, dictate or type into a window you pick, ask your PC's assistant, and run voice commands on it. The PC has to approve each phone first, the live video is end-to-end encrypted over WebRTC, and speech and the assistant can run fully locally with no API key. (Live view needs a Windows PC for now.)

the rust side is Tauri 2, and a few parts were fun to build:

speech runs on transcribe.cpp in its own worker process, so a GPU driver crash or a GGML assert kills the worker instead of the app. if the GPU worker dies it retries once on a CPU-only worker.

voice commands go to a small router model as one forced tool call. every tool (open an app, play media, write an email, press keys) goes through a single Effects trait, so a dry run just records what would have happened.

the phone app reaches the PC through a tiny relay server, and the live window view is WebRTC with webrtc-rs, Windows.Graphics.Capture and Media Foundation H.264.

the video is a real screen recording.

https://github.com/ishangautam7/Talvio


r/madeinrust • • 21d ago

AI Assisted SpecForge: a Rust tool that checks project requirements and gives coding agents focused context through MCP

5 Upvotes

Your AI coding assistant finishes a feature. The tests pass. But did anyone test the requirement it forgot?

SpecForge is an open-source tool that makes the connection between requirements and test evidence explicit.

You describe behaviors, rules, events, and verification obligations in structured .spec files. SpecForge checks their structure and relationships, then lets you inspect what has—and hasn’t—been supported by linked tests.

What it does:

  • Catches unresolved references and missing required information.

  • Links tests to the specific requirements they verify.

  • Shows verification gaps, even when the existing suite passes.

  • Exposes the specification through MCP, so coding agents can request relevant context.

  • Supports CLI checks, editor tooling, and custom extensions.

What it doesn’t do: generate your application code or automatically prove that prose requirements are satisfied. A consistent spec and passing linked tests are evidence—not a blanket correctness guarantee.

Built in Rust, with a deterministic checker: no model calls inside the validation loop.

▶️ Watch the demo: https://www.youtube.com/watch?v=qHeqgL9xydE

🔗 GitHub: https://github.com/leaderiop/SpecForge

Curious whether this would fit your workflow—or just add another thing to maintain. Feedback welcome, and a ⭐ is appreciated if you find it useful.


r/madeinrust • • 19d ago

Majority AI Coded A fast, lean Spotify client for Windows and Linux

Post image
5 Upvotes

Been working on this because I don't like how bulky and resource intensive the official spotify client is, also just not a fan of some of their UX decisions. It looks quite similar though, cause I wanted it to feel like Spotify still, since that's the whole point. This is basically how I want to use spotify haha.

Most code generated by AI, but not in a one shot prompt way tho.

https://github.com/Tako88/takofy


r/madeinrust • • Oct 03 '26

AI Assisted I made InstantClone, a free OBS stream delay you can change mid-stream without restarting, built in Rust to stop stream snipers

Thumbnail
gallery
5 Upvotes

Hey! I'm s1moscs!

I stream competitive games (CS2, Valorant), got tired of stream sniping and realized OBS's built-in stream delay was... not good at all.

It ruined my interactions with my viewers, and I had to restart my stream to turn it on or off.

After searching for a fix and finding out most good solutions were paid, I wrote InstantClone: a free, open source stream delay for OBS.

It's a local RTMP proxy between OBS and Twitch / YouTube / Kick / any RTMP(S) server. You can arm a delay, change it, or cut back to live without restarting the stream, and it can multistream the same feed to several platforms at once.

And if OBS crashes, viewers see a "reconnecting" screen instead of the stream dying, and it picks back up when OBS is back. This is (at the time of writing this) unreleased. But it will be released SUPER soon!

Why Rust? It runs on the same PC as your game, sitting in the path of a live stream, so it has to be light and never stall.

TechTalk: No GC pauses, low memory, one small binary. RTMP is handled in-house on tokio, the delay is a disk-backed buffer, and timestamps get rewritten so platforms see one continuous stream while the delay changes.

With v0.1.15 about to drop, shaped by feedback and ideas from users, we have coming: Integrations (2nd pic). Discord alerts when OBS crashes, a !delay chat command, mod controls, VOD markers and way more!

Windows and Linux, GPL-3.0. Feedback on the buffer, the timestamp handling or really ANYTHING is very welcome!

https://github.com/Soulhackzlol/InstantClone

https://s1moscs.dev/instantclone


r/madeinrust • • 18d ago

AI Assisted DragonIDE: a lightweight code editor built with Rust and Tauri (1.2 MB installer)

2 Upvotes

DragonIDE is an open-source desktop code editor. The backend is Rust, the UI is plain HTML, CSS and JavaScript, with no npm and no framework. It uses the system web view instead of bundling a browser, so the Windows installer is about 1.2 MB.

What the Rust side does:

- Git: status, stage, commit, push and pull

- A terminal that streams output live and can stop the whole process tree

- Running Rust, JavaScript and Python files, with output capped at 1 MB so a runaway program can't fill memory

- Phone mode: a small HTTP server (tiny_http) that lets you use the editor from your phone over local Wi-Fi. Each session has a random token, and requests can't reach files outside the opened folder

- Protection when another program changes an open file, so a save never overwrites it silently

It also has Quick Open, search across the project, find and replace, AI autocomplete with your own API key, and 8 themes. Installers for Windows, macOS and Linux are built automatically by GitHub Actions on every release.

It's still young and doesn't replace a full IDE yet. Known gaps are interactive terminal input, a diff view, and running Cargo projects.

Feedback on the Rust code is very welcome, especially remote.rs and the terminal code.

Repo: https://github.com/cyberworrier8088/DragonIDE

Download: https://github.com/cyberworrier8088/DragonIDE/releases/latest

If you find it useful, a star on GitHub is appreciated.


r/madeinrust • • 28d ago

Majority AI Coded Dearust — exploring a Rust migration of Darling with OpenAI Codex

2 Upvotes

Hey everyone! I’m working on Dearust, an experimental, incremental Rust migration of Darling, which runs macOS software on Linux.

The motivation is to explore how much of a compatibility layer this large can move into safer Rust while preserving its existing behavior and ABI. It’s also an experiment in how far AI-assisted development can go when the results are checked against real builds, regression tests, and actual application execution.

I’m using OpenAI Codex extensively for implementation, code review, debugging, and test automation, including parallel agents where useful. That involvement is disclosed in the README and new commits. The repository includes safety notes, verification records, and documented limitations so people can inspect the evidence.

So far, the work includes Rust host utilities and runtime slices for synchronization, errno conversion, Mach locksets, process queries, guarded descriptors, and bounded pathname handling. Testing has also uncovered and fixed concrete bugs, including a null-path crash during bsdtar operations.

The latest build passes 108 Rust tests, 29 Python tests, 16 utility workloads, and 29 app checks—with one explicitly documented log normalization. Earlier testing also covered three GUI samples.

This is still experimental and very incomplete. Most runtime and framework code remains C/C++/assembly, and integration currently depends on a matching Darling build. General macOS application compatibility is still a long-term goal.

Full credit to the Darling developers and upstream contributors whose work makes this possible.

I’d welcome feedback, especially on the ABI boundaries, safety assumptions, testing approach, and migration priorities.


r/madeinrust • • 1d ago

AI Assisted Lumio: an open-source Spotlight/Raycast alternative with OCR search and clipboard history

Thumbnail gallery
2 Upvotes

r/madeinrust • • 4d ago

Majority AI Coded Drive Sonar: a user-mode disk space analyzer built with Rust + Tauri

3 Upvotes

My pain point was simple: there is generally a lack of insightful disk usage analysers for Windows with ncdu minimalism, and that run without admin privileges. Every time I had a space crisis on my disk and looked at the native storage settings, I felt confused.

So I built Drive Sonar, an open-source (Apache-2.0) disk usage analyzer. The scanner and backend are written in Rust, with a Tauri + React front end. Full disclosure: I built it with a lot of help from AI tools. However, I review and test everything myself, in addition to running the performance benchmarking.

Drive Sonar runs entirely in user mode. It offers three types of visualizations: treemap, file-type bar chart, and size-vs-age scatter plot. It never permanently deletes anything: it only moves safe-looking files to the Trash, after several checks. System paths are scanned so you can see where the space went, but they can never be trashed. Oh, you can also save a disk scan report.

Under the hood: parallel scanning with rayon (plus a native fast path on Windows), with the results held in a flat arena tree, a single Vec of nodes linked by index. Trashing uses the trash crate.

Although Drive Sonar is optimized for Windows, it runs on Linux and macOS too. Install via winget, choco, or the releases page (different architectures supported).

I’d love feedback from the users and Rust experts, especially on the architecture, or anything that looks unidiomatic. Thanks for reading!


r/madeinrust • • 6d ago

AI Assisted Introducing Inrux: an experimental native GUI framework with SFC for Rust. Looking for feedbacks.

0 Upvotes

Hey everyone,

I’ve been working on Inrux for a while and wanted to share an early alpha to get feedback from the Rust community.

The idea is a native GUI framework where you write layout, Rust logic and styles in .iru single-file components:

<view>
    <Button text="Save" @click={save} />
</view>

<rust>
    // Rust imports, state and event handlers
</rust>

<style scoped>
    Button { background: #ff671d; }
</style>

I’m aiming to make building native Rust apps easier by combining reusable components, reactive bindings and CSS-like styling behind an engine-independent API.

You can choose egui, Masonry or GPUI as the backend. I keep component behavior and styling contracts above the adapter layer, and I’ve included a playground for each engine. There are still gaps in backend parity, and I expect the APIs to change.

I’d love your thoughts on:

  • Architecture: Does the adapter boundary make sense? Where do you see unnecessary complexity or likely performance costs?

  • The .iru format: Would you want to write Rust UIs this way? How could I improve the syntax or tooling?

  • Styling: I compile a CSS subset into typed Rust rules with indexed selector matching. Does this approach fit how you’d want to style native components?

Code, playgrounds and setup instructions: https://github.com/igris-labs/inrux

If you try it, I’d appreciate hearing what felt useful, what got in your way, or what would stop you from using it. Architecture criticism is welcome too.

Thank You.


r/madeinrust • • 8h ago

Majority AI Coded I rebuilt the trading grid I've had in my head for 15 years.

Post image
0 Upvotes

More screenshots are here


r/madeinrust • • 25d ago

AI Assisted Alter Zero: a Rust agent harness for coding, cybersecurity, and automation

Post image
89 Upvotes

https://github.com/linuztx/alter-zero
Hi everyone, I'm developing Alter Zero, an open-source terminal agent for coding, cybersecurity, and automation. It's written in Rust and runs on Linux and macOS.

It works directly in your project: reading files, making edits, running commands, and checking the results. You can ask it to investigate a failing test, trace authentication and access checks in your own code, or write a script to summarize logs.

It can also interact with running terminal programs and keep commands running in the background. There's support for subagents, reusable skills, MCP servers, and resuming previous sessions. Commands and file changes ask for approval by default.

It's light on resources: a single ~24 MB binary that typically uses 20–60 MB of RAM per session (~100 MB of free RAM is a comfortable recommendation), and it stays low even when subagents are running. It's also prompt- and token-efficient, so your API spend stretches further per task.

You can connect supported model providers, use local models through Ollama, or add a custom OpenAI-compatible API. The latest release, v0.15.0, adds simpler custom-provider configuration and shows generated file content as it streams.

The project is licensed under Apache-2.0. Installation instructions and a demo are in the repository: https://github.com/linuztx/alter-zero

I'd appreciate feedback, especially on the setup process, terminal compatibility, and tasks where it gets stuck. Issues and contributions are welcome.


r/madeinrust • • 25d ago

Majority AI Coded Flux 2.5 — a Rust download core and native browser host behind a Tauri desktop queue

Thumbnail
gallery
1 Upvotes

I maintain Flux, a free MIT-licensed download manager. The Rust workspace separates the reusable transfer core, the Tauri desktop application, a CLI and a Native Messaging host used by the browser companion. The desktop UI is React; torrent support also includes a separately built native runtime.

The part I wanted to show is the browser-to-local-app boundary: the companion hands selected links and media to a dedicated Rust host, while the desktop queue owns the transfer state. Host registration and an active extension connection are separate states, so the setup UI needs to show which step is missing. Version 2.5 refreshed that flow and the popup’s media, page-link and queue views.

The queue supports HTTP(S) files, accessible media and torrents, with scheduling, bandwidth limits and source-supported resume. Release packages are Windows x64 installer/portable ZIP and a Linux x86_64 RPM tested on Fedora 43.

Source and workspace: https://github.com/Hactor00/Flux

Project site and setup: https://fluxdownload.org

Chrome companion: https://chromewebstore.google.com/detail/flux-download-manager/okimieponfbegjhmfdnnefnddofooipk

The images are the current desktop interface preview, browser popup with sample media and companion settings. The extension requires the desktop app and local bridge; Firefox ZIPs currently use temporary/developer loading. This is an AI-assisted project. The 2.5 validation record documents 130 Windows Rust tests, 128 Linux Rust tests, Clippy and packaged Windows/Fedora checks. Feedback on the core/host/application boundary is welcome.


r/madeinrust • • 6d ago

Majority AI Coded Introducing Skif - a repository/monorepo linter written in Rust

1 Upvotes

Hi Peeps,

I want to share with you a tool I am working on. Its still early, but I already use it and it works well.

So story goes like this - I was working on restructuring a very large monorepo with disparate package managers and versions into a single PNPM workspace. When I was finished I decided I am going to enforce certain conventions so it could not drift again without failing CI. I set this up, and found myself using several different tools -Sherif, Syncpack and Knip to ensure that the repository doesn't drift again. This setup, while working, is rather clanky and also suffered from some issues - mainly performance, but also a few bugs.

I therefore decided I will build my own tool. I forked Sherif as a baseline, and built on top of it while substantially rewriting and extending its capabilities. The result is skif: a Rust linter and enforcement tool for JS/TS dependencies and monorepos.

skif replaces sherif and syncpack, and most of what knip does (the aim is to offer a full replacement for Knip in the future) in a single, ultra fast, binary.

npx skif-cli # lint the workspace or package you are in

npx skif-cli --fix # apply safe fixes

npx skif-cli migrate # turn sherif, syncpack and knip config into a skif.toml

Where it came from

skif started as a fork of sherif, and the workspace and manifest rules are ported from it. The version and catalog policies follow syncpack's model. The dead-code analysis follows knip's issue types.

It has since gone past the fork. It ports every sherif rule, adds new ones and fixes, and runs faster on every target measured. On the syncpack side it enforces version, range, banned-dependency and catalog policy.

What it deliberately does not do is sync versions. skif is a linter: it tells you a policy is broken and fails CI. Moving versions in step is left to specialized tools or the package manager's themselves. If you need this, use syncpack for example.

What it checks

42 rules:

* Manifests and workspace: empty dependency maps, types in `dependencies`, root `private` and `packageManager`, unsorted dependencies, workspace globs that match nothing, members without a `package.json`.

* Version policy: mismatched versions, semver range policy, banned dependencies, catalogs (missing entries, unused entries, references that do not resolve), `workspace:` protocol, peer dependency compatibility.

* Dead code: unused files, exports, types, enum members and dependencies; unlisted dependencies and binaries; unresolved imports; circular imports. Leveraging the OXC ecosystem for this.

It also adds some new rules, such as `incompatible-peer-dependencies` and `workspace-protocol`.

Skif lifts the idea of framework plugins - which allow it to understand different types of entrypoints (e.g. Next.JS, Vite, Storybook etc.). But unlike Knip, which loads these files, Skif doesn't actually load code - it only statically analyses it. This removes a potential surface for code execution, and is altogether much faster, although it does bring in the potential to some imprecision.

Supported package managers

Skif supports all major package managers - npm, pnpm, Yarn classic, Yarn Berry as well as Bun. It does not support Deno, although if there is a need it might in the future. It also supports Rush and Lerna workspaces.

Benchmarks

Speed

Medians of 15 runs on a 4-vCPU Linux VM, pinned public repositories, dependencies installed:

|Repository|skif|knip|

|:-|:-|:-|

|create-t3-turbo|32 ms|2.0 s|61x|

|vue-core|62 ms|1.7 s|27x|

|tanstack-query|375 ms|4.5 s|12x|

|npm-cli|99 ms|968 ms|10x|

|babel|884 ms|7.2 s|8x|

Manifest checks alone (`--no-js`) against sherif and syncpack:

|Target|skif|sherif|syncpack|

|:-|:-|:-|:-|

|create-t3-turbo|4.6 ms|36 ms|41 ms|

|babel|9.4 ms|37 ms|280 ms|

|2,000 generated packages|102 ms|130 ms|655 ms|

sherif is already fast Rust, so the margin there is small: 1.3x at 2,000 packages. The real win is knip, and not paying for three processes.

Links

* Repository URL: https://github.com/Goldziher/skif

* Docs URL: https://goldziher.github.io/skif/

P.S.

Note: This is an early project, it is on v0.2.0. I am very eager to have users, since it will improve the tool and help me fix bugs. But do expect some issues!

Thanks for reading, this was a human written post (the benchmarking data was done by an LLM). If you find the tool useful, star it!


r/madeinrust • • 27d ago

100% Human Coded SysPrint: A minimalist system information CLI written in Rust

1 Upvotes

(It`s custom logo, and i turn off some info)

(Default config)

Hi everyone,

I wanted to share a command-line utility I built called SysPrint. It is a lightweight, fast system information tool written in Rust designed with minimalism and performance in mind.

Why SysPrint?

Most existing system fetch tools carry unnecessary bloat or complex configurations. SysPrint focuses strictly on core hardware and OS metrics with minimal overhead and instant execution.

Key Features

  • Written in Rust for memory safety and maximum performance.

  • Cross-platform support targeting Linux and Windows.

  • Low dependency footprint ensuring fast build times and a small binary size.

  • Clean and structured output format.

  • Nice Config

GitHub: https://github.com/MBKCHEL/SysPrint


r/madeinrust • • 8h ago

AI Assisted FerroUI: Cross-platform declarative and Xaml based UI framework for Rust

Thumbnail
github.com
1 Upvotes

r/madeinrust • • 18d ago

Majority AI Coded The Elder Scrolls: Arena Native Rust Port

7 Upvotes

Behold! TES Arena ported natively to Rust from the handwritten assembly of the original game. 'Tis about 50x faster per frame than the original under emulation so it should run better on limited devices. Bug fixes too! Bring your own rom and try it out!

https://github.com/7ucina/tes-arena-rs


r/madeinrust • • 8d ago

Majority AI Coded I built ChirpMap: A terminal-native acoustic echolocation tool that maps rooms movement, changes, and blueprint, written in Rust.

2 Upvotes

I’ve been working on ChirpMap, an experimental Rust application that uses speakers and microphones for acoustic ranging, scene-change detection, and room visualization.

The basic idea is simple: play a short frequency sweep, record the response, and use the returning echoes to estimate what’s in the room. The more interesting part is combining measurements from multiple speaker/microphone pairs into a two-dimensional heat map.

Repo: https://github.com/FletchEm31/ChirpMap

What it does

  • Chirp-based ranging: generates a short sweep and uses FFT-based matched filtering to extract echo timing from microphone recordings.

  • Background subtraction: captures a baseline scene, then highlights changes in the echo profile rather than displaying every persistent reflection.

  • Multi-speaker/microphone tracking: combines measurements across device pairs using elliptical back-projection to place echo energy on a 2D room layout.

  • Device calibration: measures ambient noise, usable frequency band, signal levels, speaker ring-down, and capture-timing variation.

  • Terminal interface: provides device selection, calibration, room-layout configuration, and live visualizations.

  • Hardware-free simulation: includes a simulated room and moving target so you can try the processing pipeline without setting up audio hardware.

The sensing and processing run locally. It’s written in Rust, with AI-assisted development.

What the visualization means

The heat map shows where the measured echo paths agree with positions on the room layout. It isn’t camera vision, and a bright region isn’t automatically a correctly identified person or object.

This is still experimental. Results depend heavily on speaker and microphone quality, device placement, room acoustics, and reflections. A single speaker/microphone pair primarily provides range information; multiple pairs add geometric constraints. Simulated localization results shouldn’t be read as a guarantee of physical-room accuracy.

What I’m working on next

I’m focusing on better measurement confidence, handling ambiguous direct arrivals and reflections, and testing across more hardware and room configurations.

I’d particularly appreciate feedback from people working with Rust audio, DSP, or acoustic localization:

  • What would you test first to distinguish genuine localization from reflection artifacts?

  • Are there better approaches to timing alignment across separate audio devices?

  • Which hardware combinations would make useful compatibility tests?

The GIF below shows the array-tracker view. I’d love feedback on both the implementation and the underlying approach.


r/madeinrust • • 7d ago

Majority AI Coded I built OpenVClient — a native egui desktop client for SQL, Redis, MongoDB, Docker, SSH and S3 (MIT/Apache)

2 Upvotes

I’m a DevOps engineer and got tired of running 5 different GUIs (DBeaver, RedisInsight, Compass, SSMS…) every day, so I built one native client in Rust + egui.

  • SQL: Postgres, MySQL/MariaDB, SQLite, SQL Server (tiberius), ClickHouse — editor with autocomplete, table grid editing, SSMS-style EXPLAIN plan diagram

  • Redis, MongoDB, Elasticsearch, Docker, SSH/SFTP, FTP, S3-compatible, Azure Blob

  • SSH tunnels / SOCKS5 / HTTP proxy for every TCP connector, host-key pinning, secrets in the OS keychain

  • No account, no telemetry, no premium tier

It’s pre-release (0.1), so expect rough edges. I’d love feedback on the egui side, especially large result grids and the connector trait design.

GitHub: https://github.com/openvclient/openvclient · Site: https://openvclient.xyz


r/madeinrust • • Oct 18 '22

[Media] Customizable 3D Cellular Automata on the web using WGPU!

2 Upvotes

r/madeinrust • • 1d ago

Majority AI Coded update: atlas-terminal now have pretty good animition (optional)

2 Upvotes

r/madeinrust • • 5d ago

Majority AI Coded My Rust app syncs SSH connections peer-to-peer over QUIC. Here's the new UI, and the Docker lab of headless nodes I built to test it

10 Upvotes

Last week I posted TerminalLynx, my first Rust project after years of Python backend work: an SSH connection manager that syncs between your devices and your team peer-to-peer, with no cloud or account in the middle. This is the sync demo re-recorded on the 1.2.1 UI: a desktop with 109 connections pairs with an empty laptop using a one-time code, everything syncs over QUIC (iroh), and a server added on one machine appears on the other a moment later.

Until this week, most of that had only been tested over loopback or against in-process test servers. So I built a Docker test lab, and the Rust parts were the most interesting:

  • A headless node behind a Cargo feature. Everything worth testing at the network level was already in the library crate. The networking type takes a SQLite pool, a vault and a notifier, with no Tauri handle. So a lab feature adds a small control API (plain HTTP/1.1 on Tokio, no web framework) and a binary that runs the real sync engine with no window.

  • Separate machines on separate networks. Each node is its own container with its own data, next to real OpenSSH servers, including a private one that's only reachable through a bastion.

  • Scenarios in Rust. A test driver crate tells the nodes what to do and checks the results: devices on one LAN find each other over mDNS, pair and sync. Sync still converges with added latency and packet loss (netem). And russh logs in to the real servers with a password, a key, a key with a passphrase, and an agent, goes through a jump host, and runs sudo.

  • A Cargo lesson: the lab started in the app's workspace, and cargo test --workspace failed to link with E0460 ("found possibly newer version of crate iroh"). The app's tests pull in iroh's test-utils feature, so the workspace ended up with two builds of iroh. The lab is now its own workspace that copies the app's Cargo.lock before every build, so both use the same dependency versions.

It's already turned up things loopback never would. A node's peer addresses include every interface, which matters on a machine with a VPN and a LAN at the same time.

Free tier is 25 connections and 3 devices on Windows, macOS and Linux: https://terminallynx.com. If you've tested networked Rust code some other way (netns, turmoil, something else), I'd like to hear how you did it. I was impressed to be able to automate over a dozen different network scenarios with Docker and using headless versions of my app.


r/madeinrust • • 6d ago

AI Assisted InterOS: A Pure Rust Smartphone OS Built from Scratch for the Al Era

0 Upvotes

Hi, I am Bharath from Coorg, Karnataka, India.

Today I am introducing InterOS, a new pure Rust-based smartphone OS built from scratch for the AI era. InterOS was developed with three things in mind : privacy, Local AI and complete user ownership.

Personally, launching my own smartphone brand with Custom Android OS was a dream. I used to port lineageOS (previously known as Cyanogenmod) to many mobile devices in my college days. But I realized all Android smartphone brands are doing almost same thing just adding bloatware and pre-installed apps with custom launcher.

When the AI era started, things got interesting again but there were so many blockers: memory and storage limitations, app restrictions and the entire Android system is not suitable for my actual goals. And now in the whole world memory and storage prices are increasing day by day, phones and PCs have become expensive, data centres and water crisis is increasing day by day. Instead of wasting time on fixing other people's code I started pure Rust-based smartphone OS.

Why do we need a new OS?

Today's smartphone Operating Systems are still using old architectures that were actually designed for cloud centric applications, advertising, background processes. Not for soveriegn user control and we are not owners even after paying money. Old ambient authority model is not suitable for AI era and security. Also in this old architecture, we will be facing memory and storage issues beacuse the system OS takes too much space and RAM. Garbage collectors and decades of old code is always there. OS size and applications size increasing with every upgrade. Smartphone companies are adding more storage and more ram but problem is same as before. So with old architecture, running local AI models on device will be difficult and expensive. Also people already treating Ai as their companion and sharing everything wih it and it must be secure, private and local without data leaks.

What is InterOS?

InterOS is a new generation operating system written in pure Rust for type safety,zero heap size and performance also User control, Privacy, Afforabity, security in mind. In this capability based security model, programs start with zero authority and need tokens for access. It requires unforgable token called cap handles which goes through syscall: a kernel enforced consent prompt that cannot be forged by apps. Also with no_std, no_main mode and this doesnt use 3rd party crates.

Also I observered so many mobile OS that is failed to get userbase because of lack of apps and ecosystem. So added Android app support with strict sandbox or guest mode. Tried wasm and webapps which is also runs in guest mode.

I ntroduced new rust apps package called RAPPS. Currently testing many basic native apps.

Developer Tooling

Development setup for Android and iOS is time and resource consuming process for many developers. So I made browser based emulator with virtual device in it which shows QEMU OS like VNC viewer. So users can vibecode and use their own apps easily.

Local LLM

Now coming to on device AI part I am testing embeddedgemma2 and Gemma 4 2B. I want Agentic phone experience. Also this OS is the first step for post app era experience. In the earlier Android OS fork idea I was thinking about appmcp architecture but now with this kernel I can do way more better than that. I wanted to make a OS where we can run LLMs locally on our device and it can act as a Agent that can do tasks on our behalf with complete privacy. This ai agent must request permission via syscall and its not the owner. Also there is a new browser in rust with full protection from prompt injection so local ai will be secure and never reads hidden codes from websites. Traditional android browser apps will run in strict sandbox mode and never touches this Ai layer and kernel.

InterOS currently working in QEMU with highly impressive benchmark OS size is under 14 MB and 16 apps total. Actually this was a more complex project idea but not everyone needs such heavy system. originally called as Interlayer OS with blockchain usage now split into InterOS and Layer OS. Inter OS is fully open-source and we can have lite version without local AI which can run on very low memory and another one with Local AI. Layer OS will be a web3 fork of Inter OS with smart contracts and additional blockchain integration for maximum safety.

So Interos will make phones afforadable again also it can give new life to decade old phones. Currently we have working x64, aarch64 and Risc-V targets via QEMU. Day by day its getting improving.

Here is the repo link for code review and running and testing locally I kept all test scripts for making it easy for others to understand.

Github Repo :

https://github.com/Bharathcoorg/inter-os-core

Also I hosted a demo of research prototype on VPS for checking without installing locally, there will be touch/tap delays.

https://demo.interos.tech (VPS overloaded 3 slots running)

I want to continue working on this fulltime to stabilize all things and test on hardware and physical smartphones. Also desktop OS with android and windows apps support next. I am not wasting another year to write code manually, with my experience I know what exactly needed and what not. AI will help me do things way faster. As I know smartphone very well I am working consistently on every part with proper record. Sponsorships can help me focus on this full time and quit quick-commerce delivery job to focus on this project. My first smartphone must be best one, my physical smartphone ideas are already locked and I am waiting for funding. Suggest me good grants and also you can sponsor if this is interesting for you.

https://interos.tech/sponsors/

Thank you for reading this. 🙏

Anyone can contribute once we have a stable release.


r/madeinrust • • 25d ago

Majority AI Coded Melin: 1M durably replicated events/s with a p99.99 under 100µs over LAN

11 Upvotes

I’ve had this project in my mind for more than a decade, but only in 2026 were the stars properly aligned for me to scratch that itch and build Melin: a replicated state machine capable of handling a million events per second with extremely low tail latency over LAN, strong durability guarantees, and automatic failover.

Most systems don’t need all of that. Some may tolerate occasional latency spikes, others loosely consistent ordering, or even optimistic durability. For all of these, a myriad of solutions already exist.

But in other cases, like in the HFT domain, compromising on latency, consistency or durability costs too much money. Companies will go to great lengths building specialized software to get a competitive advantage and keep it for themselves.

This project is an attempt to make such a system available to more, and for more use cases.

Melin’s use case

Technically you could build a whole website with just Melin behind an HTTP gateway, but that would make it the hammer in the "if the only tool you have is a hammer, you tend to see every problem as a nail" maxim.

Where Melin particularly shines is in highly concurrent state machines. Problems that are hard to shard and can be solved deterministically.

For example a matching engine can be sharded by instrument, but an exchange core with balance checks and risk checks cannot without consistency or latency tradeoffs, since every order may affect others. A game world can be sharded by zone, but any player can interact with any other, so every zone border becomes a synchronization hazard and anything global, like a shared economy or a leaderboard, still needs a single authoritative order. And even where sharding works, each shard needs its own replication, failover and journal, and recovering all of them to the same consistent point is a problem of its own.

The range of applications includes the financial domain, where most of the techniques I used are common, but also ads, logistics, games, science, and more. Its durability guarantees, recovery capabilities, and the byte-identical journals with a BLAKE3 hash chain make it particularly suitable for domains subject to regulatory audits.

On the other hand, Melin isn't a good fit for any service that involves digging into historical data, because the application state must fit in memory (twice actually, more on that later), and I/O is heavily discouraged for the sake of determinism and latency. It’s also designed to handle small payloads: requests and responses in the low hundreds of bytes.

Performance

Here’s how Melin performs:

Under load. About 1M events/s over four connections, each a closed loop keeping a fixed number of requests in flight.

TransportIn flightp50p99p99.9p99.99p99.999
Kernel TCP2590 µs182 µs248 µs302 µs357 µs
DPDK kernel bypass1038 µs50 µs63 µs78 µs195 µs

Single event. One client, one request in flight.

TransportRatep50p99p99.9p99.99
Kernel TCP22K/s44 µs67 µs108 µs177 µs
DPDK kernel bypass33K/s30 µs49 µs53 µs55 µs

Every figure is a full round trip as the client sees it, including persistence and replication under the default ack policy, on four bare-metal servers (one client, one primary, two replicas). See Melin's readme for more details on the hardware and benchmarking conditions.

Building a durable, low-latency distributed system

Anyone who has read about low latency programming has probably heard about mechanical sympathy and the related best practices: avoid allocations, locks & yielding, pointer traversal, syscalls, encourage contiguous memory access and cache locality, atomics, amortization.

Another maybe less well-known piece but foundational to Melin is the LMAX architecture. It provides safe and efficient concurrency: multiple threads revolving through common ring buffers in an orderly fashion, with one task per thread and one thread per isolated core. This implies a relatively small context per thread that is likely to fit well in the CPU cache. Overall: high mechanical sympathy, few context switches. The caveat though is that you need a thread per task, and this is the reason why Melin in a production setup currently recommends 12 cores.

Fast PLP NVMe SSDs are now common at most providers and can perform writes with extremely low latency, typically in the microseconds range. While PLP isn't strictly necessary for Melin to enforce its durability guarantees it makes fdatasync much faster. Still, Melin can’t dictate when the firmware or the filesystem will interrupt writes for housekeeping reasons and these can cause spikes in the milliseconds range. But because it is built to operate in a cluster the natural option is to just wait for the fastest journal disk(s) before acknowledging a record as durable, hiding the impact of the slowest one(s). This is a case where, counterintuitively, a cluster can have a lower tail than a standalone node. This ack policy is configurable. By default, a record needs to be persisted on disk by one node and present on another in memory before being acknowledged as durable, enabling RPO=0 through any single-node failure, with exposure to a double failure limited to the time the second node takes to persist the record.

DPDK-capable NICs are also fairly common today and can even be found on servers to be rented by the hour, allowing for “cheap” experimentation. If you don’t know about DPDK it’s a way for a program to bypass the kernel and take direct control of the hardware interface. The result of this direct line of communication from Melin to the NIC was already shown in the benchmark table: the whole profile shifts down and the tail stays flat much further out than it does with kernel TCP. This is far from a free win though: not only does DPDK bring non-negligible operational complexity, a good chunk of Melin's code was written to deal with DPDK. Bypassing the kernel also means bringing its own TCP stack. Thankfully we have TCP stacks written in Rust! UDP is also an option, and should make Melin even faster, but it would mean tens of thousands more lines of code for a custom protocol.

Storage kernel bypass in the form of SPDK was also considered but quickly discarded. The first reason is that preventing the kernel from accessing the place where the critical data is stored sounded like an operational nightmare. The second reason is that a huge majority of Melin's latency is network-related, not storage-related. As tempting as it was for me to try to squeeze out even more microseconds of latency, the benefits/effort ratio is just too low.

Another thing that helps with reducing latency while also providing fast recovery is performing snapshots on a separate shadow thread. Regular snapshots avoid the need for a new node to retrieve the whole history before being live, but Melin can’t afford to pause the application in order to copy its state (the snapshot) to disk, because that would result in a very noticeable latency spike. To solve that, the shadow thread executes a copy of the application. This is the reason why the application state must fit twice in memory: because there’s a copy of the application running in parallel.

LLMs were essential in this project because of its scale, and their involvement is quite obvious in the code. There is a lot of data to keep in mind in such a project and it touches so many aspects of software engineering. I knew before I even started that this was impossible to do alone, since I had already tried a decade ago. I don’t want to dive too deep into the topic of LLMs, but I can't avoid mentioning these either. And while I miss the pride I had in writing my own code, there definitely are things that LLMs are orders of magnitude faster at than any human is. They, and all the other hardware and software advancements made in the past decade, made this project finally affordable for me. LLMs make many mistakes, humans do too, and code reviews, automated tests, and regular benchmarks are as much needed as they were before, but also cheaper in some ways.

The Rust ecosystem is also so rich nowadays that I was very happy to discover great tools such as Miri and TSan. The former found 3 cases of undefined behaviour (UB) that native tests couldn't catch. TSan found an fd use-after-close that could have silently written into a journal segment. There also is a Rust implementation of Raft that enabled me to bring replica automatic promotion to primary. Its architecture isn't a good fit for Melin's data plane, but it's a reasonable solution for this specific use case in the control plane. This way, if the primary fails, the replica with the longest journal can take over in a matter of seconds. This recovery time could be greatly reduced in the future by moving this control plane to Melin's low latency transports.

Why not Aeron Cluster Premium instead?

There are a few similar systems that have already been commercialized for years, and anyone considering using Melin should take a look into these. The most famous one is Aeron Cluster Premium from Adaptive.

Unfortunately its license and price prevent me from being able to build a fair Aeron vs Melin benchmark myself, and the only figures I could find aren't comparable for multiple reasons: different workload, different durability guarantees, and the EBS storage that isn't a good fit for Melin (at least not today).

But of course, performance isn’t everything and Aeron Cluster Premium and Melin have notable differences in other aspects:

  • Adaptive has been in this space for years and their product is much more mature.

  • Aeron relies on UDP whereas Melin is TCP-based, and their ack policies differ. There are pros & cons to both aspects.

  • Aeron Cluster requires a JVM, Melin is nearly pure Rust (DPDK involves a bit of C).

  • Aeron Cluster is free but the Premium features (like kernel bypass support) come with a 6-figure license with SLA & support. Melin is free to evaluate and to run outside production. Commercial terms and support will be worked out with its first users.

  • Company location and the nature of the license have regulatory repercussions. Melin's license is a BSL, and each release turns Apache 2.0 within four years.

So while one may solve the same problems with Aeron or Melin there are various reasons why one may prefer the former or the latter, whether these are technical, financial or regulatory.

The path ahead

Working solo on this so far with zero users allowed me to spend as little time as possible on communication and synchronization. I could hop from one topic to another without disrupting anyone else. While I'm quite happy with Melin's performance and feature set today there is room for improvement in determinism hardening, the DPDK and kernel TCP paths still differ in various places, and I'd love to spend some time on reducing the unsafe surface or making Melin work better on fewer threads. But I reached a point where the API, protocol and journal format are stabilizing and further work will greatly benefit from actual use.

Which is a big motivation behind this post. If you have a use for Melin, let’s get in touch!

[email protected]

https://github.com/melin-engine/melin

(And if you don't have a use for Melin but enjoyed reading this, you may want to remotely attend the P99 conference, it starts today!)


r/madeinrust • • 28d ago

AI Assisted Nautilus Image Converter - A decent tool, but with better performance

3 Upvotes

As you know, Nautilus Image Converter is a tool that can help you rotate and resize images. I also knew it when I was installing and configuring Niri, a Wayland compositor. While I was reading an Arch Linux installation guide, I found the author mentions "nautilus-image-extension". After reading its description, I thought it was interesting, and I installed it.

However, after I started using it, I found some bad things regarding its window and performance.

First, the windows are cropped somehow. I don't know whether any other user notices it, but it's obvious when I use it under Niri Wayland compositor, which makes the window look odd like image below.

Second, when I use it to process multiple images, I feel that the extension handles images slowly. I decided to find out why it processes images really slowly. After I asked AI about it, I finally knew it's mainly because it uses ImageMagick to process images; when it manipulates images, it has to open ImageMagick through a command over and over again, which makes it process multiple images pretty slowly. If you studied Operating Systems, you would know that forking a new process is expensive.

Even though I found the project on GitLab, the project seems to be unmaintained. The latest commit stays at 2022. I checked the issues, there was no more response. Even though someone said that he can help the repo author recreate the application in a issue, there is no more response either.

That's why I recreated this again. If the project is unmaintained, why don't I create my own application which aims to solve these issues?

Features

  • Standalone app: It now becomes a standalone app, not binding to Nautilus File Manager anymore. However, you can still bind parent window via CLI arguments.

  • Entirely in Rust: No non-rust dependencies, which keeps this app performant, low memory footprint and stable.

  • Parallelism: Instead of processing images one by one, this app process images in parallel by rayon.

Limitation

  • Unsupported formats: This app only supports formats supported by the image crate; formats such as HEIC are currently not supported.

Screenshots

LLM Usage Claim

Since this application is my first app created with Relm4 and gtk-rs and I wasn't really familiar with them, I used LLM to help me finish connecting events and parent window binding. Other parts of this app such as actual image manipulation logic and widgets are finished by myself. Also, I reviewed all of the code generated by AI and understand most of it except parent window binding code, which I need more time to research on.

Repository

https://github.com/Kayxue/nautilus-image-converter-reborn-app