Changelog
v1.18.0 (2025-04-28)β
Breaking changes:
fused.submit
now raises an error by default, if there is any run erroring
New Features:
- It is now possible set the cache storage location with
@fused.cache(storage=...)
. @fused.cache
can now exclude arguments from the cache key.@fused.cache
uses Pandas' own way of hashing DataFrames.- Added storage argument to
fused.file_path(storage=...)
. - Large jobs now pick up AWS credentials more consistently.
- Auth redirect can dynamically select the port when logging in locally.
udf.to_fused
will show the diff when UDF name conflicts with an existing UDF.fused.load
can load by the unique UDF ID again.- UDFs can be run by username and UDF name in addition to email and UDF name. (ex:
fused.run(user@team.com/my_cool_udf)
). - Preview images can now be specified in-directory in Github.
- Adjusted UDF caching behavior for performance.
Bug Fixes
- Fixed behavior when loading and running UDFs with code outside of the UDF function.
- Fixed
fused.api.list
being incompatible with some async stacks. - Fixed a bug where strings inside UDFs would get extra spaces added to them.
- Shared tokens can be created by a team account.
- Fixed a bug that could occur where Fused would try to duplicate index column names of the returned DataFrame.
- Fixed various bugs when a UDF closes
stdout
. - Fixed a bug where
fused.run
would not return printed messages from a UDF. - Fixed a bug where
fused.load
would crash on very large strings. - Fixed various bugs with exporting UDFs from within fused-py.
- Fixed a bug where
partitioning_schema_input
would not be found when ingesting. - Fixed a bug where UDFs might import incorrectly when several pushes happen in quick succession in a linked Github repo.
File (Viewport)
renamed toSingle (Viewport)
.- Added
Single (Parameter)
UDF type that behaves likeSingle (Viewport)
but does not pass the viewport bounds. - File Explorer will show a per-user home favourite.
- Your UDF list will now sync across different browser tabs.
- Preference toggles are added to the Command Palette.
- The share page has been redesigned.
- Collections catalog page now shows the UDF in a given Collection by hovering over them.
- When adding a duplicate UDF to Workbench, you will be prompted to duplicate or replace it.
- Memory usage for UDFs can be found in the results panel (once displaying memory usage was been turned on in Preferences)
- Workbench will indicate that UDF runs were cached in all circumstances.
- The public map page is now compatible with any public-readable shared token.
- Added
udf://name?param=value
URL support to Workbench. - Reduced the size of metadata diffs generated by Workbench when pushing to Github.
- Various performance improvements.
- Fixes for various UI layout bugs.
v1.17.0 (2025-04-10)β
- Team UDFs can be loaded or run by specifying the name "team", as in:
fused.load("team/udf_name")
Udf.to_fused
supports overwriting the UDF when saving.- Added
fused.api.enable_gcs()
to configure using the Google Cloud Platform secret specified in Fused secret manager. @fused.cache
locking mechanism has changed and will not allow multiple concurrent runs.- Upgraded DuckDB to v1.2.2.
- Running a saved UDF by token or name will now also show the logs, including print statements and error tracebacks.
- All functions interacting with the Fused server will now retry automatically, by default 3 times.
- Python 3.9 support is deprecated. The next release of
fused
will require Python 3.10+. - Deprecated
fused_batch
module is removed.
- Cached UDF runs will show the original logs.
- "Change output parameters" in the Share UDF screen shows all detected parameters.
- Added a copy viewport bounds button in the Results panel.
- Improved the performance of the catalog screen.
- Fixed the job page showing times in inconsistent time zones.
- Deprecated
fused_app
module is removed.
v1.16.3 (2025-04-03)β
- It is now possible to return general
list
s andtuple
s from UDFs. (Note: a tuple of a raster and bounds will be treated as a raster return type.)
- Workbench will now prompt you when loading large UDF results that could slow down or overwhelm your browser. The threshold for this prompt is configurable in your Workbench preferences.
- Fixed bugs with loading large UDF results.
- UDF list will show an error if a UDF has an empty name.
- Fixed running some public UDFs in Workbench.
v1.16.2 (2025-04-01)β
- It is now possible to return dictionaries of objects from a UDF, for example a dictionary of a raster numpy array, a DataFrame, and a string.
- Whitespace in a UDF will be considered as changes when determining whether to return cached data. (a UDF with different whitespace will be rerun rather than cached)
- Fixed calling
fused.run
in large jobs.
- Added experimental AI agent builder.
- Workbench will now prompt you to replace an existing UDF when adding the same UDF (by name) from the catalog.
- Added ability to download & upload an entire collection.
- Fixed saving collections with empty names.
- Added an H3-only visualization preset.
- Fixed a bug where changing TileLayer visualization type could result in a crash.
- Updated the runtime.
v1.16.0 (2025-03-27)β
- The result object of running in
batch
now haslogs_url
property. - Fixed
fused.submit
raising an error if some run failed.
- Added a Download UDFs button for downloading an entire collection.
- Results will show a message at the top if UDF execution was cached.
- Non-visible UDFs will have a different highlight color on them in the UDF list.
- Collections will show as modified if the order of UDFs has been changed.
- Fixes for Collections saving the ordering and visibility of UDFs.
- Fixed the Team Jobs page in Workbench crashing in some cases.
Shared tokens
- Shared token URLs can be called with an arbitrary (ignored) file extension in the URL.
v1.15.0 (2025-03-20)β
- Loading UDFs now behaves like importing a Python module, and attributes defined on the UDF can be accessed.
- The
fused.submit()
keywordwait_on_result
has been renamed tocollect
, with a default ofcollect=True
returning the collected results (passcollect=False
to get the JobPool object to inspect individual results). - New UDFs default to using
fused.types.Bounds
. - Upgraded
duckdb
to v1.2.1. - UDFs can now return simple types like
str
,int
,float
,bool
, and so on. - Files in
/mount/
can be listed through the API. - UDFs from publicly accessible GitHub repositories can be loaded through
fused.load
. fused.load
now supports loading a UDF from a local .py file or directory- The
x
,y
andz
aren't protected arguments when running a UDF anymore (previously protected to pass X/Y/Z mercantile tiles).
New:
- Added a new account page and redesigned preferences page.
- You can now customize the code formatter settings (available under Preferences > Editor preferences).
- UDFs can optionally be shared with their code when creating a share token.
General:
- Moved shared token page to bottom left bar, and adjusted the icons.
- The ordering of UDFs in collections is now saved.
- Updated app list UI.
- Fixed bugs with shared apps showing the wrong URL in the browser.
v1.14.0 (2025-02-25)β
v1.14.0 introduces a lot of new changes across fused-py
and Workbench
- Introducing
fused.submit()
method for multiple job run - Improvement to UDF caching
- All UDFs are now cached for 90 days by default
- Ability to customize the age of cached data & UDFs with the new
cache_max_age
argument when defining UDFs, running UDFs or when caching regular Python functions
pandas
&geopandas
are now optional for running non-spatial UDF locally- Removed hardcoded
nodata=0
value for serializing raster data
New:
- Introducing Collections to organize & aggregate UDFs together
- Redesigned "Share" button & page: All the info you need to share your UDFs to your team or the world
General:
- Improvements to Navigation in Command Pallette. Try it out in Workbench by doing
Cmd + K
(Ctrl + K
on Windows / Linux) - Autocomplete now works with
Tab
in Code Editor withTab
- Added a Delete Button in the Shared Tokens page (under Account page)
- Ability to upload images for UDF Preview in Settings Page
- Adding βFullscreenβ toggle in Map View
- Improved
colorContinuous
in Visualize Tab - Allowing users to configure public/team access scopes for share tokens
- No longer able to edit UDF & App name in read-only mode
- Fixing job loading logs
- Download directories as
zip
- Adding favorites to file path input search results
- Ability to open
.parquet
files with Kepler.gl
v1.13.0 (2025-01-22)β
- Fixed shared UDFs not respecting the Cache Enabled setting.
- Added a cache TTL (time-to-live) setting when running a UDF via a shared token endpoint.
- Tags you or your team have already used will be suggested when editing a UDF's tags.
- Team UDFs will be shown as read-only in Workbench, similar to Public UDFs.
- File Explorer shows deletion in progress.
- File Explorer can accept more S3 URLs, and uses
/mount/
instead of/mnt/cache
. - UDF Builder will no longer select a UDF when clicking to hide it.
- Fixed how Push to Github chooses the directory within a repository to push to.
- Fixed the browser location bar in Workbench updating on a delay.
- Fixed writing Shapefile or GPKG files to S3.
- (Beta) New fusedio/apps repository for public Fused Apps.
- Navigating to Team UDFs or Saved UDFs in the UDF Catalog will now prompt for login.
- Fixed the "Select..." environment button in Workbench settings.
- UDF Builder will no longer replace all unaccepted characters with
_
(underscore). - Fixed loading team UDFs when running a UDF with a shared token.
- Batch jobs that use
print
will now have that output appear in the job logs. - Apps in the shared token list show an app icon.
- Removed some deprecated batch job options.
- Installed
vega-datasets
package.
v1.12.0 (2025-01-10)β
- (Beta) Added an App catalog in Workbench, and a new type of URL for sharing apps.
- Added
/mount
as an alias for/mnt/cache
. - More consistently coerce the type of inputs to UDFs.
- Added more visualization presets to UDF builder in Workbench.
- Fixed an issue where the tab icon in Workbench could unintentionally change.
- Fixed bugs in Workbench File Explorer for
/mnt/cache
when browsing directories with many files. - Fixed bugs in
fused
Python API not being able to list all files that should be accessible. - Fixed bugs in the Github integration, command palette, and file explorer in Workbench.
- Fixed bugs in caching some UDF outputs.
- The shareable URL for public and community UDFs will now show in the settings tab for those UDFs.
- UDFs can customize their data return with
Response
objects.
v1.11.9 (2024-12-19)β
- Accounts now have a handle assigned to them, which can be used when loading UDFs and pushing to community UDFs
- Account handle can be changed once by the user (for more changes please contact the Fused team.)
- Added a command palette to the Workbench, which can be opened with Cmd-k or Ctrl-k.
- When creating a PR for a community UDF or to update a public UDF, it will be under your account if you log in to Fused with Github.
- Bug fixes for pushing to Github, e.g. when pushing a saved UDF, and for listing the Fused bot account as an author.
- Batch (
run_remote
) jobs can call back to the Fused API. - Team UDFs can be pinned to the end of the featured list.
- Speed improvements in ingestion.
- Ingestion will detect
.pq
files as Parquet. - Format code shortcut in Workbench is shown in the keyboard shortcut list and command palette.
- Workbench will hide the map tooltip when dragging the map by default.
- Workbench will now look for a
hexLayer
visualization preset for tabular results that do not containgeometry
. - Workbench file explorer can now handle larger lists of files.
- Fix for browsing disk cache (
/mnt/cache
) in Workbench file explorer. - Teams with multiple realtime instances can now set one as their default.
- Fix for saving UDFs with certain names. Workbench will show more descriptive error messages in more cases for issues saving UDFs.
v1.11.8 (2024-12-04)β
- New File Explorer interface, with support for managing Google Cloud Storage (GCS) and
/mnt/cache
files. - Workbench will show an error when trying to save a UDF with a duplicate name.
- Fixed a few bugs with Github integration, including the wrong repository being selected by default when creating a PR.
- Updated
fsspec
andpyogrio
packages.
v1.11.7 (2024-11-27)β
- Decluttered the interface on mobile browsers by default.
- Fixed redo (Cmd-Shift-z or Ctrl-Shift-z) sometimes being bound to the wrong key.
- Tweaked the logic for showing the selected object in Workbench.
v1.11.6 (2024-11-26)β
- Added Format with Black (Alt+Shift+f) to Workbench.
- Fix the CRS of DataFrame's returned by get_chunk_from_table.
- Added a human readable ID to batch jobs.
- Fused will send an email when a batch job finishes.
- Fix for opening larger files in Kepler.gl.
- Fix for accessing UDFs in a team.
- Improved messages for UDF recursion, UDF geometry arguments, and returning geometry columns.
- Adjusted the UDF list styling and behavior in Workbench.
- Fix for secrets in shared tokens.
v1.11.5 (2024-11-20)β
- Show message for keyword arguments in UDFs that are reserved.
- Added reset kernel button.
- Workbench layers apply visualization changes immediately when the map is paused.
- Show the user that started a job for the team jobs list.
- Fix for running nested UDFs with utils modules.
- Fix for returning xarray results from UDFs.
- Fix for listing files from within UDFs.
- Upgraded to GeoPandas v1.
v1.8.0 (2024-06-25) π¦β
- Added Workbench tour for first-time users.
- Undo history is now saved across UDFs and persists through reloads.
- Added autocomplete when writing UDFs in Workbench.
- Added
colorBins
,colorCategories
, andcolorContinuous
functions to Workbench's Visualize tab. - Migrated SDK to Pydantic v2 for improved data validation and serialization.
- Fixed a bug causing NumPy dependency conflicts.
v1.7.0 (2024-06-04) π¦β
- Execution infrastructure updates.
- Update DuckDB package to v1.0.0.
- Improve responsivity of Workbench allotments.
- Crispen Workbench UI.
v1.6.1 (2024-05-06) πβ
GitHub integration
- Updates to team GitHub integration.
- Users are now able to create shared UDF token from a team UDF both in Workbench and Python SDK.
v1.6.0 (2024-04-30) πβ
- The Workbench file explorer now shows UDFs contributed by community members.
- Team admins can now set up a GitHub repository with UDFs that their team members can access from Workbench.
v1.5.4 (2024-04-15) πβ
- Button to open slice of data in Kepler.gl.
- Minor UI design and button placement updates.
v1.5.3 (2024-04-08) π¦β
- Improved compatibility with DuckDB requesting data from shared UDFs.
- Geocoder in Workbench now supports coordinates and H3 cell IDs.
- GeoDataFrame arguments to UDFs can be passed as bounding boxes.
- The package ibis was upgraded to 8.0.0.
- Utils modules no longer need to import fused.
v1.5.2 (2024-04-01) πβ
- File browser can now preview images like TIFFs, JPEGs, PNGs, and more.
- Users can now open Parquet files with DuckDB directly from the file browser.
v1.5.0 (2024-03-25) πβ
- The upload view in Workbench now shows a file browser.
- Users can now preview files in the file browser using a default UDF.
v1.4.1 (2024-03-19) π¬β
- UDFs now support typed function annotations.
- Introduced special types
fused.types.TileXYZ
,fused.types.TileGDF
,fused.types.Bbox
. - Workbench now autodetects Tile or File outputs based on typing.
- Added button to Workbench to autodetect UDF parameters based on typing.
v1.1.1 (2024-01-17) π«β
- Renamed
fused.utils.run_realtime
andfused.utils.run_realtime_xyz
tofused.utils.run_file
amdfused.utils.run_tile
. - Removed
fused.utils.run_once
.
v1.1.0 (2024-01-08) πβ
- Added functions to run the UDFs realtime.
v1.1.0-rc2 (2023-12-11) πβ
- Added
fused.utils.get_chunk_from_table
. - Fixed bugs in loading and saving UDFs with custom metadata and headers.
v1.1.0-rc0 (2023-11-29) βοΈβ
- Added cloud load and save UDFs.
target_num_files
is replaced bytarget_num_chunks
in the ingest API.- Standardize how a decorator's headers are preprocesses to set
source_code
key. - Fixed a bug loading UDFs from a job.
v1.0.3 (2023-11-7) π¦β
Getting chunks
- Added
fused.utils.get_chunks_metadata
to get the metadata GeoDataFrame for a table. run_local
now passes a copy of the input data into the UDF, to avoid accidentally persisting state between runs.instance_type
is now shown in more places for running jobs.- Fixed a bug where
render()
ing UDFs could get cut off. - Fixed a bug with defining a UDF that contained an internal
@contextmanager
.
v1.0.2 (2023-10-26) πβ
Uploading files
- Added
fused.upload
for uploading files to Fused storage. - Added a warning for UDF parameter names that can cause issues.
- Fixed some dependency validation checks incorrectly failing on built-in modules.
v1.0.1 (2023-10-19) πβ
- Added
ignore_chunk_error
flag to jobs. - Added warning when sidecar table names are specified but no matching table URL is provided.
- Fixed reading chunks when sidecars are requested but no sidecar file is present.
- Upgraded a dependency that was blocking installation on Colab.
v1.0.0 (2023-10-13) π’β
Shipping dependencies
- Added
image_name
torun_remote
for customizing the set of dependencies used. - Added
fused.delete
for deleting files or tables. - Renamed
output_main
andoutput_fused
tooutput
andoutput_metadata
respectively in ingestion jobs. - Adjusted the default instance type for
run_remote
. - Fixed
get_dataframe
sometimes failing. - Improved tab completion for
fused.options
and added a repr. - Fixed a bug where more version migration messages were printed.
- Fixed a bug when saving
fused.options
.