Streamsync is a new open-source framework for building data apps that combines a no-code frontend using a visual editor with a Python backend. It aims to provide faster response times compared to competitors like Streamlit by running the user script only once, using WebSockets for syncing frontend and backend states, and keeping things in memory without the need for caching.
No-code in the front, Python in the back. An open-source framework for creating data apps. - streamsync-cloud/streamsync
Key features of Streamsync include:
- A visual user interface editor called Streamsync Builder that allows users to focus on the application logic while easily creating complex layouts.
- State-driven, reactive user interfaces that separate the UI from the logic, using a consistent yet customizable design system.
- Event handlers as plain Python functions for a predictable flow of execution.
- Built using Python, TypeScript, Vue, and FastAPI, and distributed as a standard Python package.
Streamsync’s architecture involves sending events from the browser to the web server via WebSockets, passing them to the AppRunner, and dispatching them to the isolated AppProcess for handling. The user interface is detached from the logic, allowing for easy component replacement and state synchronization.
The project is still in its early stages, with plans to focus on sharing Streamsync, gathering feedback, and adding features like a high-performance data grid, refined input components, and improved observability. Streamsync can be installed via pip and requires Python 3.9.2 or higher.