Open-source project
HemantKArya/BloomeeTunes avatar
HemantKArya/BloomeeTunes

BloomeeTunes: a Flutter music player that puts streaming sources in plugins

🌸Bloomee is a cross-platform music app designed to bring you ad-free tunes from various sources. 🌼🎵

2,259 stars216 forksDartGPL-2.0

At a glance

What is it?
An ad free, GPL licensed player written in Dart with a Rust core, where every online music source arrives as an auto updating .bex plugin instead of a hard coded provider.
Who is it for?
BloomeeTunes is an unusual shape of music client. Instead of shipping a fixed list of providers, it treats sources as plugins, distributes them as .bex files that update on their own, and uses a Rust core behind a Dart and Flutter interface.
Can I use it commercially?
Yes, with conditions. GPL-2.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 74 days ago.
What is it written in?
Mainly Dart, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 11, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What Bloomee is, and the one idea underneath it

Bloomee describes itself as an experimental, open source music player built with Flutter and Rust, unified and plugin first, with local playback and streaming in the same library. The GitHub description is blunter about the motivation: a cross platform music app for ad free tunes from various sources. The project is written in Dart on the Flutter side, released under GPL-2.0, and carries about 2,245 stars, 213 forks and 205 open issues, which is a lot of open issues for a project of this size and tells you the maintainer is carrying real user traffic rather than a demo. The last recorded push is dated 2026-07-30, so the work is current. Everything else follows from one architectural decision. Rather than hard coding a set of music services into the app, Bloomee puts them behind a plugin boundary, so a new source is a plugin that can be installed and updated without shipping a new version of the player. Topics on the repository reflect the same split: audio player, downloader, music client, offline first, bloc, just audio, rust bridge support, and the Android, Windows and Flutter application categories. Local device music and online streams are meant to sit in one player, in one queue, not in two separate apps that never agree with each other.

The plugin system and the Rust core

Plugins are distributed as files with a `.bex` extension, and the system is described as secure and auto updating. Auto updating matters more than it sounds: a plugin can gain access to a new source or a new endpoint without waiting for the Flutter app itself to be rebuilt and pushed to users. Global charts are built on top of this, listed as daily updated charts sourced from the installed plugins, so the popularity data belongs to the plugin set rather than to a hard coded list in the app. The repository tree shows why this is more than a feature list. There is a `rust/` directory, a `rust_builder/` directory and a `flutter_rust_bridge.yaml` configuration file, which together indicate that the plugin and playback logic is written in Rust and exposed to Dart through generated bindings rather than reimplemented on both sides. That also explains why the plugin format can be described as secure in a meaningful sense: a native extension loaded into a process is a code execution surface, and the project is explicit about how that surface is managed. If you are reading the codebase to learn, that bridge directory is the place to start, since it is where the Dart world and the Rust world meet.

The parts of a music player that actually get used

The feature checklist is long, and the entries worth knowing about are the unglamorous ones. Local music is a first class citizen: play your offline library alongside online streams, with offline first as an explicit topic on the repository. Backup and restore exports your library and settings as JSON or M3U, which means a migration to another machine is a file copy rather than a fresh start. An audio equalizer ships in the app, and crossfade transitions are customisable, which is the setting that most affects whether a long listen feels smooth. Smart Replace is the recovery path: when a track in a playlist stops resolving, the app looks for a working stream automatically instead of leaving a silent gap. Lyrics are karaoke style and time synced, with manual offset adjustment for the common case where a lyric file is a second or two out from the audio. Last.fm scrobbling logs listening history and is described as including offline caching, so plays count even when the network is not there. Recommendations are drawn from Last.fm and from plugins. Discord Rich Presence shows the current track on a profile, and backup and restore, native media controls and desktop shortcuts round out the platform side for Windows, Linux and Android.

Platforms, install channels and a warning worth reading

Bloomee is listed as available for Android, Windows and Linux, with the Linux build marked as a developer stage. macOS and iOS directories exist in the repository tree, but the download section does not present them as supported releases, so treat desktop and mobile coverage as the Android, Windows and Linux triangle above. Three distribution channels are named: GitHub Releases for the primary builds, SourceForge as a second download route with its own download counter badge, and an IzzyOnDroid listing, which is the F-Droid style channel that favours builds from source. The README opens with a security warning that deserves to be quoted rather than paraphrased, because it changes how you should treat search results for this app. The maintainer states that several unofficial websites claim to be the official Bloomee site, names exactly two URLs as the only official ones, bloomeex.org and the GitHub Pages site at hemantkarya.github.io, and warns that unofficial sites may distribute modified application packages or malware, with the author declining responsibility for damage or privacy loss from third party downloads. If you arrive at a Bloomee download from a search result, check the domain against that list before installing anything.

Architecture, languages and how to contribute

The repository is laid out the way you would expect from a Flutter app with a native core. There is `lib/` for Dart, `rust/` and `rust_builder/` for the Rust side, the bridge configuration at the root, `l10n.yaml` with an `assets/` tree for localisation, `fastlane/` for release metadata, an `ARCHITECTURE.md` at the root, and a `test/` directory alongside `test_driver/`. Platform folders cover `android/`, `windows/`, `linux/`, `web/`, `ios/` and `macos/`, and `deploy_page.py` at the root is there to push the GitHub Pages site. `analysis_options.yaml` is present, so the project follows Dart's lint configuration rather than inventing its own. The interface ships in six languages, all listed as complete: Hindi, English, Korean, German, Spanish and Japanese. The contribution path is spelled out in four steps: open an issue to discuss the idea first, fork and clone the `main` branch, create a feature branch and build it, then submit a pull request, with `CONTRIBUTING.md` holding the detailed guidelines. The stated reason to contribute is educational, and the maintainer notes being relatively new to Flutter, which is an invitation to beginners and explains the tone of the issue tracker.

Release cadence and where the project is going

Versioning follows a Flutter style scheme with a build number, and the recent tags make the pace visible. Version 3.0.4+202 shipped on 2026-05-29 with bug fixes and UI enhancements plus a fix to the plugin auto updater, which is worth noting because the auto updater is load bearing for the whole plugin model. Version 3.0.3+201 followed on 2026-05-16 with the same short description of fixes and UI work, and version 3.0.2+200 landed on 2026-04-04. Small patch releases landing every few weeks, each carrying a build number that increments independently of the semantic version, is a normal pattern for a consumer app that is also a plugin host. The roadmap framing is interesting for that reason: the feature list in the README is presented as a completed roadmap, with every item ticked, so the interesting question is not what is planned but what breaks in the plugin layer under a growing set of sources. Funding runs through Liberapay, the README asks for contributions rather than treating them as a condition, and the repository also links a Trendshift listing. With 205 open issues and a steady patch cadence, the practical reading is a popular app in active maintenance, where the open questions are mostly the boring kind that real users generate.

Editorial conclusion

BloomeeTunes is an unusual shape of music client. Instead of shipping a fixed list of providers, it treats sources as plugins, distributes them as .bex files that update on their own, and uses a Rust core behind a Dart and Flutter interface. That choice is what makes the ad free promise hold as providers come and go, and it is also why the project is worth reading as an architecture example, since the repository separates the Dart side, the Rust side and the bridge between them. Around that core sits the unglamorous part of a good player: local files, backup and restore, an equalizer, lyrics with manual offset, and automatic recovery when a playlist track stops resolving. The GPL-2.0 licence means anyone can study and modify it, and the stated purpose is learning Flutter, clean architecture and BLoC patterns in a real codebase. Take the distribution warnings seriously and install from the listed channels only.

Frequently asked questions

Is the Bloome Music app safe?

The maintainer's own guidance is to install only from the two official sites they list, bloomeex.org and hemantkarya.github.io, or from the GitHub Releases, SourceForge and IzzyOnDroid channels named in the README. The project warns that several unofficial sites claim to be official and may distribute modified packages or malware, and states the author is not responsible for damage or privacy loss from third party downloads. Check the domain before installing.

What is the Bloomee app?

It is an experimental, open source, ad free music player built with Flutter and Rust. It plays local device music alongside online streams, and instead of hard coding music services it loads them as plugins distributed in `.bex` files that update on their own. The Dart interface is backed by a Rust core through a flutter_rust_bridge configuration, and the project is GPL-2.0 licensed.

How do music sources get added to Bloomee?

As plugins. Sources ship as `.bex` files through a secure, auto updating plugin system, and features like the daily updated global charts are built from the plugins that are installed rather than from a list inside the app. Adding a source therefore does not require a new release of the player itself.

Which platforms does Bloomee build for?

The download section lists Android, Windows and Linux, with Linux marked as a developer stage build. Directory names for iOS and macOS exist in the repository, but they are not presented as supported releases. Downloads are offered through GitHub Releases, SourceForge and an IzzyOnDroid listing.

Official sources

  1. HemantKArya/BloomeeTunes on GitHub
  2. License: GPL-2.0
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/hemantkarya-bloomeetunes.svg)](https://hysenlabs.com/projects/hemantkarya-bloomeetunes)