33 karma · joined December 10, 2022
Our ultimate goal is to provide a web browser-compatible environment (for quickly building UIs) with a state of the art P2P protocol — A DTN design that is delay, fault, and partition tolerant, with comprehensive and complete NAT traversal, without any server or cloud infrastructure requirements from the user — lowering the technical and monetary barriers for distributing and parallelizing work beyond the cloud. Our native plugin system was designed to easily support projects like llama.cpp which makes it simple to load any LLM and expose JavaScript APIs over it.
and our NAT traversal success rate is comprehensive, every known routable path actually works (check this table https://socketsupply.co/blog/the-next-chapter-in-the-story-o...)
we're actually not reinventing too many wheels here, our work is conceptually based on DTNs — cited frequently in our guides and docs.
Pretty much any code that runs on the Web will "just work" in Socket.
In terms of security, an optional Main process means a smaller surface area to worry about when considering your end-user's safety.
Historically, the super strict separation of UI and Main was implemented as a security precaution. For example, you didn’t want the front end doing naughty things to your file system, because after all, who knows when a rouge request might be somehow injected or some data may be unescaped. But in reality it didn't resolve the problem, it just moved the risk into Main - where the same problems still exist, because Main is an arbitrary binary with many most likely unaudited, transient dependencies, and unmitigated access to the OS.
We reduced the overall surface area and locked it down with CSP (a web standard) to granularly control 100% of the native capabilities. In other words, there is less solution-specific ceremony to spend time on, you get to focus on your real problems.
- A focus on Web Devs (No new languages to learn)
- A runtime, not a library (All developer code is encapsulated)
- Provide a secure context that loads like local web server (to make it easy to bring existing code, and use it like a web developer)
- Normalize native platform features like Bluetooth and UDP sockets - Normalize differences between wkwebview and Webview2, and provide things like a unified WHATWG fetch method and URL class.
- Provides new kinds of communication protocols (like P2P)
Please visit the post for more details and give it a star on GitHub to show your support. Cheers!
Maybe try https://github.com/socketsupply/socket