Butterfly.Server

October 27, 2019 ยท View on GitHub

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.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

Star Us 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...

Install from Nuget

NamePackageInstall
Butterfly.Authnugetnuget install Butterfly.Auth
Butterfly.Dbnugetnuget install Butterfly.Db
Butterfly.Db.MySqlnugetnuget install Butterfly.Db.MySql
Butterfly.Db.Postgresnugetnuget install Butterfly.Db.Postgres
Butterfly.Db.SQLitenugetnuget install Butterfly.Db.SQLite
Butterfly.Db.SqlServernugetnuget install Butterfly.Db.SqlServer
Butterfly.Webnugetnuget install Butterfly.Web
Butterfly.Web.EmbedIOnugetnuget install Butterfly.Web.EmbedIO
Butterfly.Web.RedHttpServernugetnuget install Butterfly.Web.RedHttpServer
Butterfly.Utilnugetnuget install Butterfly.Util

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.