Awesome
Butterfly.Server
The Everything is Real-Time C# Backend for Single Page Applications
Overview
Butterfly.Server is a set of packages that can be used separately or can be used together to create integrated solutions to create modern web apps with a C# backend. The purpose of this repo is to show examples of how to use the components together.
Butterfly.Server is especially well suited to powering SPAs (single page applications) by providing...
- A RESTlike API enabling clients to receive static data and perform actions
- A Subscription API enabling clients to automatically receive real-time updates when data changes
- A Database API that avoids object-relational mappings and publishes data change events
- A Messaging API that provides a consistent API to send emails and texts
Butterfly.Server consists of the following components...
- Butterfly.Auth - Authenticate clients using Butterfly.Db and Butterfly.Web
- Butterfly.Client - Clients (javascript and .NET) that can subscribe real-time updates from a Butterfly.Web server
- Butterfly.Db - Reactive database SELECTs for popular relational databases
- Butterfly.Message - Send emails and text messages via the same API
- Butterfly.Util - Collection of utility classes and methods
- Butterfly.Web - Simple RESTlike and Subscription API server
Butterfly.Server...
- Targets .NET Framework 2.1 (.NET Core 3.0)
- Fully supports async/await
- Does not depend on ASP.NET
- Does not use polling for real-time updates
Please star this project if you find it interesting
Examples
The following examples are a good way to understand how to use the Butterfly.Server components...
- Butterfly.Example.Contacts - Shows a Vue.js web client managing a set of contacts by interacting with a Butterfly.Server
- Butterfly.Example.DbEvents - Shows how to perform basic database operations and see generated data events
- Butterfly.Example.Echo - Shows a "Hello World" alert box in a client
- Butterfly.Example.RealtimeStreamingChart - Shows a client with a real-time streaming chart updated from a server (uses Smoothie Charts)
- Butterfly.Example.Todos - Shows a Vue.js web client managing a set of to-dos by interacting with a Butterfly.Server
Install from Nuget
Install from Source Code
Get the source from these repos...
In the Wild
Build Hero is a collaborative tool for general contractors, subcontractors, and customers to collaborate on remodel projects. The my.buildhero.io site and the Android app are all powered by Butterfly.Server.
MotionAlerts.ai is a tool that uses AI to filter security camera alerts.. The my.motionalerts.ai site and the Android app are all powered by Butterfly.Server.
Notice in the production apps above how everything updates in real-time across all connected clients when changes happen.
Similar Projects
Licensing
The code is licensed under the Mozilla Public License 2.0.