koto VS moonfire-nvr

Compare koto vs moonfire-nvr and see what are their differences.


A simple, expressive, embeddable programming language, made with Rust (by koto-lang)


Moonfire NVR, a security camera network video recorder (by scottlamb)
Our great sponsors
  • SonarQube - Static code analysis for 29 languages.
  • InfluxDB - Build time-series-based applications quickly and at scale.
  • SaaSHub - Software Alternatives and Reviews
koto moonfire-nvr
4 27
324 820
2.5% -
8.8 7.5
10 days ago 8 days ago
Rust Rust
MIT License GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.


Posts with mentions or reviews of koto. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-04-20.


Posts with mentions or reviews of moonfire-nvr. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-01-27.
  • Installing Rust in a Raspberry Pi 3A+
    6 projects | reddit.com/r/rust | 27 Jan 2023
    But I would definitely avoid compiling Rust on the Raspberry Pi 3 if you can avoid it. I set up a Docker cross-compile environment for this reason.
  • Self Hosted CCTV/Home Security
    2 projects | reddit.com/r/selfhosted | 11 Jan 2023
  • NVR Suggestions & Experience...Any decent alternatives for MotionEye?
    5 projects | reddit.com/r/selfhosted | 19 Dec 2022
    Moonfire may be what you're looking for otherwise.
  • What's everyone working on this week (50/2022)?
    6 projects | reddit.com/r/rust | 12 Dec 2022
    That last bit's not quite true: another option is to just use the cameras as a dumb stream source and do all the fanciness in an open source NVR. I've been slowly working on moonfire-nvr. Help welcome!
  • surveillance station
    5 projects | reddit.com/r/selfhosted | 28 Nov 2022
  • Managing and using ONVIF IP cameras with Linux
    4 projects | news.ycombinator.com | 19 Oct 2022
    ONVIF isn't really that important IMHO.

    Configuring your camera is something you do rarely, and if you have to put up with some crappy web interface, proprietary plugin, or desktop software for it, oh well. So the ONVIF SOAP APIs aren't really the most important part.

    The most important part is RTSP. Many of these have astonishingly poor RTSP implementations. See https://github.com/scottlamb/moonfire-nvr/wiki/Cameras:-Reol... for some of what I'm talking about. That ONVIF page says everything is fine for several Reolink models, but I don't believe it!

    4 projects | news.ycombinator.com | 19 Oct 2022
  • camera recording software recommendations
    3 projects | reddit.com/r/selfhosted | 20 Sep 2022
    If you don't need restreaming or mjpeg support, check out moonfire. It's the only alternative I'm aware of that doesn't use FFmpeg.
  • Safari Technology Preview Release 145 –:has() and container queries
    2 projects | news.ycombinator.com | 13 May 2022
    MSE is entirely unsupported on iPhones. window.MediaSource is undefined. https://github.com/scottlamb/moonfire-nvr/issues/121
    2 projects | news.ycombinator.com | 13 May 2022
    > WebRTC largely prefers dropping packets to stay real-time

    Tangent, but in my experience, the dropping packets approach doesn't work as well as people say. I haven't played with WebRTC, but my understanding is it's based on RTP over an unreliable transport, which I am familiar with. Dropping packet by packet (no mechanism to either retransmit the dropped packet or skip sending the rest of the packets in the frame) isn't great. When you lose one packet, you lose one frame, and all the other frames are janky until the next reference frame. RTP over TCP (interleaved RTSP channels) can be better, by retransmitting lost packets belonging to a frame once you've decided to send that frame, and by skipping whole frames at once when things fall behind (observed within the application as insufficient buffer space). TCP has more rapid feedback, too. (ACKs are far more frequent than RTCP RRs.)

    > while HLS buffers and preserves every frame by default rather than drop frames to stay real-time. One is designed for calls (real-time) and one is not (streaming). That’s why HLS seems over-complicated. It’s not designed around real-time signalling, instead it’s designed around making requests for frames/bytes effectively sequentially.

    Sure, and the WebSocket protocol I mentioned also can preserve every frame, more simply.

    > MSE would be a way of capturing packets, but if the protocol doesn’t let you sequentially access bytes starting from a timestamp, you’re stuck when trying to resume a stream, no?

    MSE lets you specify your own protocol. Mine [1] lets you seek to arbitrary timestamps.

    [1] https://github.com/scottlamb/moonfire-nvr/blob/master/design...

What are some alternatives?

When comparing koto and moonfire-nvr you can also consider the following projects:

Shinobi - :peace_symbol: :palestinian_territories: Shinobi CE - The Free Open Source CCTV platform written in Node.JS (Camera Recorder - Security Surveillance Software - Restreamer

frigate - NVR with realtime local object detection for IP cameras

motioneyeos - A Video Surveillance OS For Single-board Computers

jupyter-rust - a docker container for jupyter notebooks for rust

neolink - An RTSP bridge to Reolink IP cameras

webdriver-install - Fast and simple webdriver installation

Zoneminder - ZoneMinder is a free, open source Closed-circuit television software application developed for Linux which supports IP, USB and Analog cameras.

viseron - Self-hosted NVR with object detection

dolt - Dolt – Git for Data

Magnetico - Autonomous (self-hosted) BitTorrent DHT search engine suite.

Rouille, Rust web server middleware - Web framework in Rust

hashbrown - Rust port of Google's SwissTable hash map