/butterfly-server

The Everything is Real-Time C# Backend for Single Page Applications

Primary LanguageC#Mozilla Public License 2.0MPL-2.0

Butterfly.Server Butterfly Logo

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

Name Package Install
Butterfly.Auth nuget nuget install Butterfly.Auth
Butterfly.Db nuget nuget install Butterfly.Db
Butterfly.Db.MySql nuget nuget install Butterfly.Db.MySql
Butterfly.Db.Postgres nuget nuget install Butterfly.Db.Postgres
Butterfly.Db.SQLite nuget nuget install Butterfly.Db.SQLite
Butterfly.Db.SqlServer nuget nuget install Butterfly.Db.SqlServer
Butterfly.Web nuget nuget install Butterfly.Web
Butterfly.Web.EmbedIO nuget nuget install Butterfly.Web.EmbedIO
Butterfly.Web.RedHttpServer nuget nuget install Butterfly.Web.RedHttpServer
Butterfly.Util nuget nuget 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.