{"id":13429579,"url":"https://github.com/firesharkstudios/butterfly-server","last_synced_at":"2025-04-07T19:14:32.420Z","repository":{"id":37926960,"uuid":"112019366","full_name":"firesharkstudios/butterfly-server","owner":"firesharkstudios","description":"The Everything is Real-Time C# Backend for Single Page Applications","archived":false,"fork":false,"pushed_at":"2023-01-04T22:58:56.000Z","size":22265,"stargazers_count":275,"open_issues_count":32,"forks_count":30,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-03-23T00:27:57.549Z","etag":null,"topics":["app","butterfly","database","push","realtime","server","spa","webapp","webserver","websocket"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/firesharkstudios.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-11-25T16:48:15.000Z","updated_at":"2024-12-10T12:06:46.000Z","dependencies_parsed_at":"2023-02-02T23:00:39.113Z","dependency_job_id":null,"html_url":"https://github.com/firesharkstudios/butterfly-server","commit_stats":null,"previous_names":["firesharkstudios/butterfly-server-dotnet","firesharkstudios/butterfly"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firesharkstudios%2Fbutterfly-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firesharkstudios%2Fbutterfly-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firesharkstudios%2Fbutterfly-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firesharkstudios%2Fbutterfly-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/firesharkstudios","download_url":"https://codeload.github.com/firesharkstudios/butterfly-server/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246491018,"owners_count":20786098,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["app","butterfly","database","push","realtime","server","spa","webapp","webserver","websocket"],"created_at":"2024-07-31T02:00:42.022Z","updated_at":"2025-03-31T16:15:11.711Z","avatar_url":"https://github.com/firesharkstudios.png","language":"C#","funding_links":[],"categories":["Frameworks, Libraries and Tools","webapp","database"],"sub_categories":["Application Frameworks"],"readme":"# *Butterfly.Server* ![Butterfly Logo](https://raw.githubusercontent.com/firesharkstudios/butterfly-server/master/img/logo-40x40.png) \n\n\u003e The Everything is Real-Time C# Backend for Single Page Applications\n\n# Overview\n\n*Butterfly.Server* is a set of packages that can be used separately\nor can be used together to create integrated solutions to create \nmodern web apps with a C# backend. The purpose of this repo is to show examples of how to use the components together.\n\n*Butterfly.Server* is especially well suited to powering SPAs (single page applications) by providing...\n\n- A *RESTlike API* enabling clients to receive static data and perform actions\n- A *Subscription API* enabling clients to automatically receive real-time updates when data changes\n- A *Database API* that avoids object-relational mappings and publishes data change events\n- A *Messaging API* that provides a consistent API to send emails and texts\n \n*Butterfly.Server* consists of the following components...\n\n- [Butterfly.Auth](https://github.com/firesharkstudios/butterfly-auth) - Authenticate clients using [Butterfly.Db](https://github.com/firesharkstudios/butterfly-db) and [Butterfly.Web](https://github.com/firesharkstudios/butterfly-web)\n- [Butterfly.Client](https://github.com/firesharkstudios/butterfly-client) - Clients (javascript and .NET) that can subscribe real-time updates from a Butterfly.Web server\n- [Butterfly.Db](https://github.com/firesharkstudios/butterfly-db) - Reactive database SELECTs for popular relational databases\n- [Butterfly.Message](https://github.com/firesharkstudios/butterfly-message) - Send emails and text messages via the same API\n- [Butterfly.Util](https://github.com/firesharkstudios/butterfly-util) - Collection of utility classes and methods\n- [Butterfly.Web](https://github.com/firesharkstudios/butterfly-web) - Simple RESTlike and Subscription API server\n\n*Butterfly.Server*...\n\n- Targets *.NET Framework 2.1* (.NET Core 3.0)\n- Fully supports async/await\n- Does **not** depend on ASP.NET\n- Does **not** use polling for real-time updates\n\n![Star Us](https://raw.githubusercontent.com/firesharkstudios/butterfly-server/master/img/yellow-star-16x16.png) Please star this project if you find it interesting\n\n# Examples\n\nThe following examples are a good way to understand how to use the *Butterfly.Server* components...\n\n- [Butterfly.Example.Contacts](https://github.com/firesharkstudios/butterfly-server/tree/master/Butterfly.Example.Contacts) - Shows a Vue.js web client managing a set of contacts by interacting with a *Butterfly.Server*\n- [Butterfly.Example.DbEvents](https://github.com/firesharkstudios/butterfly-server/tree/master/Butterfly.Example.DbEvents) - Shows how to perform basic database operations and see generated data events\n- [Butterfly.Example.Echo](https://github.com/firesharkstudios/butterfly-server/tree/master/Butterfly.Example.Echo) - Shows a \"Hello World\" alert box in a client\n- [Butterfly.Example.RealtimeStreamingChart](https://github.com/firesharkstudios/butterfly-server/tree/master/Butterfly.Example.RealtimeStreamingChart) - Shows a client with a real-time streaming chart updated from a server (uses [Smoothie Charts](http://smoothiecharts.org/))\n- [Butterfly.Example.Todos](https://github.com/firesharkstudios/butterfly-server/tree/master/Butterfly.Example.Todos) - Shows a Vue.js web client managing a set of to-dos by interacting with a *Butterfly.Server*\n\n# Install from Nuget\n\n| Name | Package | Install |\n| --- | --- | --- |\n| Butterfly.Auth | [![nuget](https://img.shields.io/nuget/v/Butterfly.Auth.svg)](https://www.nuget.org/packages/Butterfly.Auth/) | `nuget install Butterfly.Auth` |\n| Butterfly.Db | [![nuget](https://img.shields.io/nuget/v/Butterfly.Db.svg)](https://www.nuget.org/packages/Butterfly.Db/) | `nuget install Butterfly.Db` |\n| Butterfly.Db.MySql | [![nuget](https://img.shields.io/nuget/v/Butterfly.Db.MySql.svg)](https://www.nuget.org/packages/Butterfly.Db.MySql/) | `nuget install Butterfly.Db.MySql` |\n| Butterfly.Db.Postgres | [![nuget](https://img.shields.io/nuget/v/Butterfly.Db.Postgres.svg)](https://www.nuget.org/packages/Butterfly.Db.Postgres/) | `nuget install Butterfly.Db.Postgres` |\n| Butterfly.Db.SQLite | [![nuget](https://img.shields.io/nuget/v/Butterfly.Db.SQLite.svg)](https://www.nuget.org/packages/Butterfly.Db.SQLite/) | `nuget install Butterfly.Db.SQLite` |\n| Butterfly.Db.SqlServer | [![nuget](https://img.shields.io/nuget/v/Butterfly.Db.SqlServer.svg)](https://www.nuget.org/packages/Butterfly.Db.SqlServer/) | `nuget install Butterfly.Db.SqlServer` |\n| Butterfly.Web | [![nuget](https://img.shields.io/nuget/v/Butterfly.Web.svg)](https://www.nuget.org/packages/Butterfly.Web/) | `nuget install Butterfly.Web` |\n| Butterfly.Web.EmbedIO | [![nuget](https://img.shields.io/nuget/v/Butterfly.Web.EmbedIO.svg)](https://www.nuget.org/packages/Butterfly.Web.EmbedIO/) | `nuget install Butterfly.Web.EmbedIO` |\n| Butterfly.Web.RedHttpServer | [![nuget](https://img.shields.io/nuget/v/Butterfly.Web.RedHttpServer.svg)](https://www.nuget.org/packages/Butterfly.Web.RedHttpServer/) | `nuget install Butterfly.Web.RedHttpServer` |\n| Butterfly.Util | [![nuget](https://img.shields.io/nuget/v/Butterfly.Util.svg)](https://www.nuget.org/packages/Butterfly.Util/) | `nuget install Butterfly.Util` |\n\n# Install from Source Code\n\nGet the source from these repos...\n\n- [Butterfly.Auth](https://github.com/firesharkstudios/butterfly-auth)\n- [Butterfly.Client](https://github.com/firesharkstudios/butterfly-db)\n- [Butterfly.Db](https://github.com/firesharkstudios/butterfly-db)\n- [Butterfly.Util](https://github.com/firesharkstudios/butterfly-util)\n- [Butterfly.Web](https://github.com/firesharkstudios/butterfly-web)\n\n# In the Wild\n\n[Build Hero](https://www.buildhero.io) is a collaborative tool for general contractors, subcontractors, and customers to collaborate on remodel projects.  The [my.buildhero.io](https://my.buildhero.io) site and the Android app are all powered by *Butterfly.Server*.\n\n[MotionAlerts.ai](https://www.motionalerts.ai) is a tool that uses AI to filter security camera alerts..  The [my.motionalerts.ai](https://my.motionalerts.ai) site and the Android app are all powered by *Butterfly.Server*.\n\nNotice in the production apps above how everything updates in real-time across all connected clients when changes happen.\n\n# Similar Projects\n\n- [dotNetify](https://github.com/dsuryd/dotNetify)\n- [FeatherJS](https://feathersjs.com/)\n- [Firehose](http://firehose.io/)\n- [Meteor](https://www.meteor.com/)\n- [PubNub](https://www.pubnub.com/)\n- [Pusher](https://pusher.com/)\n- [SignalR](https://github.com/SignalR/SignalR)\n- [SignalW](https://github.com/Spreads/SignalW)\n\n# Licensing\n\nThe code is licensed under the [Mozilla Public License 2.0](http://mozilla.org/MPL/2.0/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffiresharkstudios%2Fbutterfly-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffiresharkstudios%2Fbutterfly-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffiresharkstudios%2Fbutterfly-server/lists"}