frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Show HN: CrabCamera – Cross-platform camera plugin for Tauri desktop apps

https://crates.io/crates/crabcamera
49•MKuykendall•3d ago
After building several Tauri desktop apps, I kept hitting the same wall: there's no reliable way to access cameras across Windows, macOS, and Linux. Every project meant reinventing camera integration, dealing with platform-specific APIs, and debugging permission issues.

  So I built CrabCamera – a Tauri plugin that handles all the camera complexity for you.

  What it does:

  - One API, three platforms: Same Rust code works on Windows (DirectShow), macOS (AVFoundation), and Linux (V4L2)
  - Permission handling: Automatically requests camera permissions on each platform
  - Format conversion: Takes care of the messy bits between platform formats and what your app needs
  - Error handling: Proper Rust error types instead of mysterious crashes
  - Hot-plugging: Detects when cameras are connected/disconnected

  The problem it solves:

  Before CrabCamera, adding camera support to a Tauri app meant:
  1. Writing separate native code for each platform
  2. Managing three different permission systems
  3. Handling format conversions manually
  4. Debugging platform-specific edge cases
  5. Maintaining it all as OS APIs change

  Now it's just:
  use crabcamera::Camera;

  let camera = Camera::new()?;
  let frame = camera.capture_frame().await?;

  Why I built it:

  I was working on a plant monitoring app (botanica) that needed reliable camera access for time-lapse photography. Existing solutions were either abandoned, platform-specific, or required complex native
  bindings.

  The Tauri ecosystem is growing fast, but camera support was this obvious gap. Every desktop app eventually needs camera access – video calls, document scanning, AR features, security monitoring.

  Technical highlights:

  - Uses nokhwa for the heavy lifting but wraps it in Tauri-friendly APIs
  - Proper async/await support throughout
  - Memory-efficient streaming for video capture
  - Built-in image processing pipeline
  - Extensible plugin architecture

  What's next:

  - WebRTC integration for video calls
  - Built-in barcode/QR code scanning
  - Face detection hooks
  - Performance optimizations for 4K streams

  The crate is MIT licensed and available on crates.io. I'd love feedback from other Tauri developers who've wrestled with camera integration.

  Links:
  - Crates.io: https://crates.io/crates/crabcamera
  - GitHub: https://github.com/Michael-A-Kuykendall/crabcamera
  - Documentation: https://docs.rs/crabcamera

Comments

auraham•1d ago
Thanks for sharing!
ge96•2h ago
idk why when I see a lot of emojis in readmes I think vibecode
foresterre•2h ago
And also a lot of (unordered) lists. It however only took one more step to verify this: the code is two commits, which both have "(...) and claude committed" in their commit tag, and " Generated with Claude Code" in their commit message. This is not intended to be a judgement, more a neutral observation.

I thought the "demo_crabcamera.py" was funny with respect to vibecoding: it's not a demo (I already found it odd for a Tauri app to be demo-ed via a python script); it produces the description text posted by OP.

On a more serious note, it all looks reasonably complete like most AI generated projects, but also almost a one shot generated project which hasn't seen much use for it to mature. This becomes even more true when you look a bit deeper at the code, where there are unfinished methods like:

  pub fn get_device_caps(device_path: &str) -> Result<Vec<String>, CameraError> {
        // This would typically query V4L2 capabilities
        // For now, return common capabilities
        Ok(vec![
            "Video Capture".to_string(),
            "Streaming".to_string(),
            "Extended Controls".to_string(),
        ])
    }

The project states it builds on nokhwa for the real camera capture capabilities, but then conditionally includes platform libraries, which seem to be only used for tests (which means they could have been dev-dependencies), at least in the case of v4l, based on the results of GitHub's search within the repo.

Perhaps it all works, but it does feel a bit immature and it does come with the risks of AI generated code.

WD-42•1h ago
The wall of text that doesn’t actually say that much is a dead giveaway.
lucb1e•1h ago
The wall of text here, as well as the wall of text on the submission, keeps using the word Tauri but not saying what this is. Wikipedia says Tauri are Crimean settlers. Think I found it now: https://tauri.app

That page says that "By using the OS’s native web renderer, the size of a Tauri app can be little as 600KB." sounds like an alternative for Electron basically

bryanhogan•1h ago
It's an alternative to Electron and Capacitor[1] now. So turning a web app into a more "native" application for both mobile and desktop systems.

[1]: https://capacitorjs.com/

WD-42•1h ago
The only thing that makes it more native than electron is that it uses the system's webview, instead of shipping an entire Chrome/CEF. You write Rust for Tauri's backend, which is nice.
j1elo•1h ago

  What's next:
  - WebRTC integration for video calls
  - Built-in barcode/QR code scanning
  - Face detection hooks
That sounds to me like final application usages that should be independent from this project, which is just a HAL for camera access. Conflating the two into the same code seems to raise the bar incredibly high for the scope of this one, so not sure how that will work out. WebRTC alone is a very complicated beast, for which the camera acquisition is just a very small part.
pzo•10m ago
for cross-application as desktop only I think QtMultimedia is still the most feature rich and the best option.

If need only mobile (iOS / Android) then react-native-vision-camera probably the best bet.

If need only simple camera access then opencv

ChatGPT Developer Mode

https://platform.openai.com/docs/guides/developer-mode
139•meetpateltech•1h ago•55 comments

Show HN: Term.everything – Run any GUI app in the terminal

https://github.com/mmulet/term.everything
259•ghub-mmulet•1d ago•38 comments

OrioleDB Patent: now freely available to the Postgres community

https://supabase.com/blog/orioledb-patent-free
271•tosh•6h ago•98 comments

I didn't bring my son to a museum to look at screens

https://sethpurcell.com/writing/screens-in-museums/
243•arch_deluxe•1h ago•88 comments

The Origin Story of Merge Queues

https://mergify.com/blog/the-origin-story-of-merge-queues
42•jd__•2h ago•10 comments

I replaced Animal Crossing's dialogue with a live LLM by hacking GameCube memory

https://joshfonseca.com/blogs/animal-crossing-llm
751•vuciv•15h ago•165 comments

TikTok has turned culture into a feedback loop of impulse and machine learning

https://www.thenexus.media/tiktok-won-now-everything-is-60-seconds/
134•natalie3p•1h ago•123 comments

Bild AI (YC W25) Is Hiring

https://www.ycombinator.com/companies/bild-ai/jobs/m2ilR5L-founding-engineer-applied-ai
1•rooppal•1h ago

Kerberoasting

https://blog.cryptographyengineering.com/2025/09/10/kerberoasting/
100•feross•5h ago•35 comments

Show HN: TailGuard – Bridge your WireGuard router into Tailscale via a container

https://github.com/juhovh/tailguard
40•juhovh•14h ago•13 comments

We can’t circumvent the work needed to train our minds

https://zettelkasten.de/posts/the-scam-called-you-dont-have-to-remember-anything/
211•maksimur•3h ago•105 comments

Defeating Nondeterminism in LLM Inference

https://thinkingmachines.ai/blog/defeating-nondeterminism-in-llm-inference/
7•jxmorris12•35m ago•0 comments

'Block Everything' protests sweep across France, scores arrested

https://www.reuters.com/world/europe/block-everything-protests-sweep-across-france-scores-arreste...
37•JumpCrisscross•1h ago•11 comments

Wiggling into Correlation

https://entropicthoughts.com/wiggling-into-correlation
5•ibobev•1h ago•0 comments

iPhone Air

https://www.apple.com/newsroom/2025/09/introducing-iphone-air-a-powerful-new-iphone-with-a-breakt...
859•excerionsforte•23h ago•1772 comments

Distributing your own scripts via Homebrew

https://justin.searls.co/posts/how-to-distribute-your-own-scripts-via-homebrew/
23•ingve•2d ago•4 comments

Jiratui – A Textual UI for interacting with Atlassian Jira from your shell

https://jiratui.sh/
12•gjvc•3h ago•5 comments

Show HN: CrabCamera – Cross-platform camera plugin for Tauri desktop apps

https://crates.io/crates/crabcamera
49•MKuykendall•3d ago•9 comments

Zoox launches its robotaxi service to the public in Las Vegas

https://zoox.com/journal/las-vegas
103•krschultz•2h ago•126 comments

The HackberryPi CM5 handheld computer

https://github.com/ZitaoTech/HackberryPiCM5
15•kristianpaul•1d ago•1 comments

E-paper display reaches the realm of LCD screens

https://spectrum.ieee.org/e-paper-display-modos
580•rbanffy•1d ago•185 comments

Guy running a Google rival from his laundry room

https://www.fastcompany.com/91396271/searcha-page-seekninja-diy-search-engines
156•coloneltcb•4h ago•111 comments

Knowledge and memory

https://www.robinsloan.com/lab/knowledge-and-memory/
84•zdw•3d ago•41 comments

Performance Improvements in .NET 10

https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-10/
105•benaadams•4h ago•39 comments

NASA finds Titan's lakes may be creating vesicles with primitive cell walls

https://www.sciencedaily.com/releases/2025/08/250831112449.htm
245•Gaishan•17h ago•81 comments

Anthropic Services Down

https://status.anthropic.com/incidents/k6gkm2b8cjk9
76•rob•1h ago•48 comments

Claude now has access to a server-side container environment

https://www.anthropic.com/news/create-files
626•meetpateltech•1d ago•326 comments

Rendering flame fractals with a compute shader (2023)

https://wrighter.xyz/blog/2023_08_17_flame_fractals_in_comp_shader
47•ibobev•2d ago•9 comments

US High school students' scores fall in reading and math

https://apnews.com/article/naep-reading-math-scores-12th-grade-c18d6e3fbc125f12948cc70cb85a520a
493•bikenaga•1d ago•954 comments

All clickwheel iPod games have now been preserved for posterity

https://arstechnica.com/gaming/2025/09/all-54-lost-clickwheel-ipod-games-have-now-been-preserved-...
205•CharlesW•1d ago•53 comments