/socket

The simplest way to build native desktop & mobile apps for any OS using your favorite frontend libraries. Apps can even communicate directly with Modern P2P, no cloud required!

Primary LanguageC++OtherNOASSERTION

Description

Web Developers use Socket Runtime to create apps for any OS, desktop, or mobile. You can use plain old HTML, CSS, and JavaScript, as well as your favorite front-end libraries for example React, Svelte, and Vue.

Socket Runtime exposes primitives needed for building peer-to-peer and local-first applications, such as Bluetooth, UDP, and robust file system access. Our P2P component can help you connect your app's users, and let them communicate directly, without the cloud or any servers at all.

The Socket Runtime CLI compiles applications into hybrid-native applications &mbasp; meaning, a combination of web code running in a platform's "WebView" along with platform-native code: Kotlin/Java on Android, Swift/Objective-C on iOS, C++ on Windows or Linux, etc.

๐Ÿ’ก Features

  • Local First, a full-featured File system API & Bluetooth.
  • P2P & Cloud, built to support a new generation of apps that can connect directly to each other by providing a high-performance UDP API.
  • Use any backend, business logic can be written in any language, Python, Rust, Node.js, etc. The backend is even completely optional.
  • Use any frontend, you can use your favorite frontend framework to create your UIs: React, Svelte, Vue, and more.
  • Maintainable, zero dependencies, and a smaller code base than any other competing project.
  • Lean & Fast, uses a smaller memory footprint and creates smaller binaries than any other competing project.

๐Ÿ”‘ FAQ

Check the FAQs on our Website to learn more.

๐Ÿงฑ Building your first Socket app!

Create Socket App is similar to React's Create React App, we provide a few basic boilerplates and some strong opinions so you can get coding on a production-quality app as quickly as possible.
Please check create-socket-app Repo to get started and to learn more.
You can also check our Examples in the Examples Repo.

๐Ÿ“š Documentation

The full documentation can be found on the Socket Runtime website.
The Socket Runtime documentation covers Socket APIs, includes examples, multiple guides (Apple, Desktop, and Mobile), P2P documentation, and more.

๐Ÿงช Testing

Socket provides a built-in test runner similar to node:test which outputs the test results in TAP format. You can also check test/ for the unit and integration test suite.

๐Ÿ™ Contributing

We welcome contributions from everyone! Please check our Contribution Guide to learn more. Don't hesitate to stop by Discord and ask the team about your issue and if someone is already working on it.
Please connect with any current project contributors: @heapwolf, @jwerle, and @chicoxyzzy if you want to contribute to the Socket Runtime project itself.
Thank you for your interest in reporting/fixing issues and contributing to Socket!