mini_racer
Pion WebRTC
mini_racer | Pion WebRTC | |
---|---|---|
4 | 85 | |
583 | 12,775 | |
0.7% | 1.8% | |
7.2 | 9.0 | |
22 days ago | 7 days ago | |
JavaScript | Go | |
MIT License | MIT License |
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.
mini_racer
-
Ask HN: What side projects landed you a job?
Some years ago I was on a shitty job - not technically, but the company turned out to be inhumane - at a Ruby shop, and on the side I was toying with mini_racer and I just upgraded to some macOS beta where it failed to build. A shitty +1-1 hack† for a compiler flag later and it was back flying.
A month later I received a cold email from a CTO to chat a bit about that PR, turns out they were using mini_racer heavily and forked it for their own purpose, and also created PyMiniRacer for the Python side of things. Next thing I know I got hired. Two years later the company got acquired.
Of course conditionally adding a compiler flag wasn't what got me hired per se, it only got my profile noticed. Probably side projects such as porting go by example to Ruby by implementing a ~1:1 CSP channel API[1], an Electron desktop client for Mattermost basically on a dare[2], ex mode for the Atom editor so that I could have that frackin' `:w`[3], leveraging Blocks to bolt on object-oriented-ness onto C because "closures are a poor man's object"[4], or reverse-engineering the Xbox One USB gamepad and writing a kext to turn it into a HID device on macOS from scratch on a lonely 7+h train ride with passengers judgementally staring at me sideways[4] probably contributed to it a bit.
My takeaway: luck is when preparation meets opportunity; but don't to side projects to get hired, because if you don't get hired then that time is lost. Rather, of all things, scratch your itch, have fun, embrace whatever quirkiness you fancy; no one can take that away from you.
[0]: https://github.com/rubyjs/mini_racer/commit/2086db1bbf2b5de4...
[1]: https://github.com/lloeki/normandy
[2]: https://github.com/lloeki/matterfront
[3]: https://github.com/lloeki/ex-mode
[4]: https://github.com/lloeki/cblocks-clobj/blob/master/main.c
[5]: https://github.com/lloeki/xbox_one_controller
-
YouTube-dl has a JavaScript interpreter written in 870 lines of Python
Cue libv8-node+mini_racer from which PyMiniRacer was born. It is non-trivial but not as hard as one might think.
The most painful part is the libv8 build system and Google tooling, which makes it an absolute PITA for libv8 consumers that are not Chrome.
This is why the libv8 gem was atrocious to keep up to date and to build for several platforms, and why libv8-node was born, because the node build system and source distribution are actually sane.
Disclaimer: worked at Sqreen, now maintainer of libv8-node and collaborator of mini_racer
https://github.com/sqreen/PyMiniRacer
https://github.com/rubyjs/mini_racer
https://github.com/rubyjs/libv8-node
-
Rendering markdown with Markdoc in Rails
Eventually, we’ll want to call this JavaScript from a Rails controller using ExecJS or MiniRacer or some similar tool. None of the Ruby-to-JavaScript gems I found were sophisticated enough to know how to load npm modules with common.js or ES module syntax, so my solution is to just build the JavaScript with a watcher and have that run as part of bin/dev.
-
Anyone having issues with M1Pro?
https://github.com/rubyjs/mini_racer/issues/190 has some info an then this PR: https://github.com/rubyjs/mini_racer/pull/210 that has been merged. Hope that all helps!
Pion WebRTC
- VoRS: Vo(IP) Simple Alternative to Mumble
- Golang WebRTC. How to use Pion 🌐Remote Controller
- Pure Go Implementation of the WebRTC API
-
Pure C WebRTC
I am really excited about https://github.com/sepfy/libpeer. It has examples ready for ESP32 etc....
When working on KVS I wasn't familiar with the embedded space at all. I saw 'heavyweight' embedded where you were running on Linux. Then you had RTOS/No OS at all. I wasn't prepared for these devices at all. If we can make WebRTC work in the embedded space I think it will really accelerate what developers are able to build!
Remotely driven cars, security cameras, robots in hospitals that bring iPads to infectious patients etc... Creative people are building amazing things. The WebRTC/video space needs to work harder and support them :)
-----
I love how diverse the WebRTC space is now. Outside of this implementation you have plenty of other options!
* https://github.com/shinyoshiaki/werift-webrtc (Typescript)
* https://github.com/pion/webrtc (Golang)
* https://github.com/webrtc-rs/webrtc (Rust)
* https://github.com/algesten/str0m (Rust)
* hhttps://github.com/sepfy/libpeer (C/Embedded)
* https://webrtc.googlesource.com/src/ (C++)
* https://github.com/sipsorcery-org/sipsorcery (C#)
* https://github.com/paullouisageneau/libdatachannel (C++)
* https://github.com/elixir-webrtc (Elixir)
* https://github.com/aiortc/aiortc (Python)
* GStreamer’s webrtcbin (C)
See https://github.com/sipsorcery/webrtc-echoes for examples of some running against each other.
- WebRTC for the Curious
-
Ask HN: What side projects landed you a job?
I have worked four jobs related to https://github.com/pion/webrtc and one for https://webrtcforthecurious.com
Two companies used Pion. The other two were just using the protocol (WebRTC)
- Need help with audio calls for rooms with about 10 people in each.
-
Possible frameworks/languages for a web/mobile application
In my experience Go has been relatively approachable for people that are good at PHP. It has a great standard library and a pretty solid ecosystem, though frameworks aren’t as popular in Go. There are some well regarded libraries for things like WebRTC via https://github.com/pion/webrtc WebSicket via https://github.com/nhooyr/websocket
-
Video streaming in golang
Don't try to make RTC yourself, it looks easy, but in fact, it's a really hard problem to solve. Use https://pion.ly/ it's a pretty solid package they also have a discord/slack channel with a lot of helpful people there.
-
Datachannel video streaming?
Maybe you can reuse some of this code: https://github.com/pion/webrtc/blob/master/examples/data-channels/main.go
What are some alternatives?
execjs - Run JavaScript code from Ruby
mediasoup - Cutting Edge WebRTC Video Conferencing
libv8-node - Package libv8 from Node
livekit-server - Scalable, high-performance WebRTC SFU. SDKs in JavaScript, React, React Native, Flutter, Swift, Kotlin, Unity/C#, Go, Ruby and Node. [Moved to: https://github.com/livekit/livekit]
quickjs - Thin Python wrapper of https://bellard.org/quickjs/
janus-gateway - Janus WebRTC Server
PyMiniRacer - PyMiniRacer is a V8 bridge in Python.
aiortc - WebRTC and ORTC implementation for Python using asyncio
pyduktape - Embed the Duktape JS interpreter in Python
libdatachannel - C/C++ WebRTC network library featuring Data Channels, Media Transport, and WebSockets
markdoc-rails - Example of rendering markdown using Markdoc with Ruby on Rails
SIPSorcery - A WebRTC, SIP and VoIP library for C# and .NET. Designed for real-time communications apps.