NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #2816 most downloaded on pub.dev
Finch is a fast, lightweight Dart framework for building scalable server-side web apps, REST APIs, databases, WebSockets, and MCP servers
Last release 26 days ago
12 Sep 2026
Ships on a steady schedule
a new release about every 2 weeks
Nearly every release is documented
notes for 27 of 27 stable releases
1 version withdrawn
withdrawn after publishing
11 months old
30 releases · first in 2025
One column per month.
Fixed #88 : unique field validation now reads the count from the query result via res.assoc.first instead of res.rows.first.assoc()
res.assoc.first instead of res.rows.first.assoc()FinchApp._runCommands() is now public as runCommands(), with a new direct parameter to process commands once instead of opening the interactive promptRefactored the database connection process: added a unified DBManager ( FinchApp.db ) that connects/closes MongoDB, MySQL and SQLite together
DBManager (FinchApp.db) that connects/closes MongoDB, MySQL and SQLite together
mongoDb, mysqlDriver and sqliteDriver are now backed by dedicated DBConnection classes (MongodbConn, MySqlConn, SqliteConn) instead of ad-hoc fields on FinchAppDb.pool, MySQLConnectionPool), configurable via a new maxConnections option on FinchDBConfig/FinchMysqlConfigMySQLConnectionPool.transactional)FinchApp.onError() to register a callback that is invoked whenever an error is logged through Consoledotenv; added a native EnvReader/EnvParser (.env parsing, quotes, $VAR/${VAR} interpolation, comments)http; added FinchHttp (FinchHttp.get()/FinchHttp.post()), exported from finch/tools.dartcron; FinchCron now uses its own built-in CronSchedule parser/matcher (supports both 5-field and 6-field cron expressions)logger; Console/Print now log through a native, colorized Log classcrypto; toMd5() now uses pointycastlefinch serve opens a WebSocket server (--terminalPort, default 8282) that streams the running app's stdout/stderr and lets you send commands back, viewable from the browser debugger--enable-vm-service now binds to 0.0.0.0:8181 (instead of localhost) so DevTools is reachable from inside Dockerdocker-compose.yaml now exposes port 8282 for the terminal--json/-j option to the routes CLI command to print the routes list as JSONRequest.language (URL segment, then API lang param, then cookie/session), and validated the result against config.languageshtml to ^0.15.7, mime to ^2.1.0, archive to ^4.2.0, capp to ^2.2.0, sqlite3 to ^3.5.2, yaml to ^3.1.4, mcp_models to 2.1.0Nothing published for this version
Nothing published for this version
Fix issue #80: Support the Previous MCP Protocol Version with an Extended Deprecation Period
Request rq parameter from FinchApp.addRouting() callbacks; request data remains available through Context.rq inside route handlersNothing published for this version
Upgraded MCP support to MCP 2.0 ( mcp_models: 2.0.0 ): replaced initialize / notifications/initialized handling with the new server/discover method an
mcp_models: 2.0.0): replaced initialize/notifications/initialized handling with the new server/discover method and DiscoverResult responsemake:migration command to create SQL or Dart migration files from the CLI
finch make:migration --name create_users_tablefinch make:migration --name create_users_table --sqlite--create option from migrate/migrate_sqlite; use make:migration insteadh to view history)cryptography package dependencycapp to ^2.1.0, mcp_models to 2.0.0New DartMigration abstract class ( up() / down() build SQL via addSql() ) with a target of MigrationTarget.mysql or MigrationTarget.sqlite
DartMigration abstract class (up()/down() build SQL via addSql()) with a target of MigrationTarget.mysql or MigrationTarget.sqliteapp.registerDartMigration([...]); migration names must be uniquemigrate --init, --rollback and --list now run registered Dart migrations alongside (or instead of) file-based migrationsmysql_client with mysql_client_plusencrypt with cryptography/pointycastle for toSafe()/fromSafe() AES encryptionmongo_dart, mailer, jinja, intl, build_runner, test and sqlite370 error unexpected byte at offset by @uproid in #71
FormatException: Unexpected extension byte when request URLs contain malformed percent-encoded sequences (e.g. /%AF/test)
safePathSegments extension on Uri and safeDecodeUriComponent() helper for crash-safe decoding of path segments (invalid UTF-8 bytes are replaced with � instead of throwing)Fixed ApiDoc to correctly display style route parameters by convertin…
Fixed ApiDoc to correctly display style route parameters by convertin…
…g them to format in the OpenAPI/Swagger output
SocketManager.requestHandle:param style route parameters by converting them to {param} format in the OpenAPI/Swagger outputAdded errorWidget to the web app config to enable better customization of error pages. #66
Update dependencies (Sqler 1.2.1), to fix bugs of sqlite queries
controller, middlware and services
finch make:controller --name testfinch make:service --name testfinch make:middleware --name testfinch templatesAdded new commands to make controller, middlware and services
controller, middlware and services
finch make:controller --name testfinch make:service --name testfinch make:middleware --name testfinch templatesUpdated documentation to reflect the new :param syntax support in routing #63
:param syntax support in routing #63{param} and new :param parameter styles- #58 Fixes #58: Resolved issues in the migrate -i and migrate -r processes. The migration process will now stop if a MySQL error occurs. - fixing iss
- #54 Fixed a bug in the route caching functionality where responses were not being properly cached and retrieved based
Added Model Context Protocol (MCP) Server support for building AI-powered applications #49
Fixes #50 The conflict between watchers in the serve environment has …
Fixes #50 The conflict between watchers in the serve environment has …
Fixed bugs in route caching functionality to ensure proper caching and retrieval of routes based on the specified parameters and cache source. #46
Added route caching functionality to improve performance of frequently accessed routes. This includes in-memory caching and file-based caching options
Fixes bug of gettting template list in finch templates command in Finch CLI #43
finch templates command in Finch CLI #43Added new command to create migration files for mysql and sqlite databases in Finch CLI `bash finch migrate --create --mysql --name create_users_table
finch migrate --create --mysql --name create_users_table
finch migrate --create --sqlite --name create_users_table
finch migrate --rollback=2 # rolls back the last 2 migrations
finch migrate --rollback # rolls back the last migration
finch templates command to show the list of available templates in GitHub #40Adding -template option to Finch CLI to create new projects with different templates `bash finch create --template simple finch create -t simple `
finch create --template simple
finch create -t simple
Updated the Finch CLI to create new projects in new paths
finch build --cli --path ./lib/app.dart
Added Finch serve CLI command to serve to run watch mode for development `bash finch serve `
finch serve
Fixed #22 fixed checking isApiEndpoint property in WebRequest class
Improved runing app speed in production mode #18
Updated documentation for localization and i18n (EN/FA/ZH) #16
Improved documentations (EN/FA/ZH) #12
From now on, all future updates will be made to this package, and WebApp will soon be deprecated.
Your coding agent can read these notes before it upgrades. Set up the MCP server →