Skip to content

Releases: atelier-saulx/based

Release version v1.1.15

02 Dec 16:34

Choose a tag to compare

Bug Fixes

This release focuses on stability improvements, enhanced tooling, and better development workflows.

  • Capped references
  • Fixes issues with edge:references
  • Enhanced subscription functionality
  • Improved CLI tooling
  • Enhanced logger functionality with performance tool for benchmarking purposes
  • Improved type definitions and error handling
  • Code cleanup and optimization across multiple files

Complete Monthly Changelog: v1.1.4...v1.1.15

Release version v1.1.4

07 Nov 21:01

Choose a tag to compare

v1.1.4

(Nov 7th 2025)

High performance DB subscriptions

  • Integration in modify core
  • Id based subscriptions + include
  • Filters based subscriptions
  • Sort (integrated within the separate sort command)
  • Time based subscriptions - evaluate "now" syntax
  • Greedy type subscriptions

Partials

  • Improved reference(s) implementation (step 2 of partial)
  • Space requirement improvements
  • Partial loading of large databases (Experimental) better memory and concurrency management

Edges

  • Support all property types in edges
  • Added edge aggregation
  • Fixed an issue where edge props were not always saved properly

Schema

  • User- sortable references as an option on the schema
  • Full validation for all string formats (email, creditcard, etc)
  • Dedicated validate function to validate payloads
  • Fixed issues with one- sided edges
  • Removed role and display properties from schema

Misc

  • Added capped option for circular ids for nodes per type
  • Modify individual errors
  • Fixed bug with alias + filter queries
  • Handle body data correctly for PUT and PATCH http methods
  • Fixed bug with expire syntax + dependent
  • Fixed bug with edges and migrations
  • Refresh .expire()
  • Improved load/save speed for references
  • Removed weak references support
  • Server/client integration improved performance by allowing sending and receiving of chunks on the client, avoiding memory copies

Breaking changes

  • Removed display, role and readOnly option in @based/schema

Release version v0.1.3

02 Oct 18:19

Choose a tag to compare

(Oct 1st 2025)

  • Optimized Server client integration
    • Complete protocol package for each format of based server / client e.g. response formats
  • Improved reliability of client-server communication by replacing the current get and set processes with atomic upserting
    • Improved reference(s) implementation (step 1 of partial)
    • edge relations as true node types
  • update reference upsert behavior to support defaults & hooks
  • New result type for aggregations
  • Fix: Bug with expire
  • Aggregation with multiple distinct function types
  • Fixed first letter bug in text search
  • Fixed bug with edges on both sides
  • Optimized and reimplemented DB read protocol for browser (40% smaller and fast)
  • Implemented REST fallback protocol (excluding channels) (based/server)
  • Added onClose option on context.session in the server
  • Added support for all http methods in (based/server)
  • Option to bind data from the session context in basedQueries (based/server)
  • "Insert" option for upsert (only create if alias does not exist)
  • Cardinality property migration fix
  • Cardinality resource consumption optimization
  • Improved Cardinality API - Precision and sparse/dense mode selection
  • Order main buffer for better alignment
  • Complete schema infer type
  • Improved db hook system: Property hooks
  • Implemented individual response protocol for modify operations (returning a response per modify)
  • Meta information for last-ids (in zig, stored in common instead of schema)
  • Fix regression: migrate should skip incompatible values
  • Fix: load from dump with node using schema.dependent
  • Fix: Incorrectly including drain time in query exec time measurement in .inspect()
  • Unified @based/sdk acting as a single point for all other based packages. Consumers only need to install and import a single package @based/sdk.
  • New centralized versioning system
    • Automatic cohesive updates across all suite of packages
    • Start of CI/CD

Based DB v0.1.1

28 Aug 22:57

Choose a tag to compare

🚀 v0.1.0 (Sep 2025)

Include

  • 20% faster performance from internal optimizations
  • New API feature: Meta information for adding contextual information like crc32, size and checksum.
  • New API feature: "End option" allowing getting the start of a property, by default counts characters for strings and text including multibyte characters.
  • Read is now fully supported in the @based/client, removing the need to call .toObject() when returning data from based functions
  • Reading and deserializing database results is now 30% faster.

Query

  • Id on a based query response now returns the id of a node if the target is single node
  • Added queryId that is the

Backups

  • Backup improvement. IoWorker threads for non blocking saving and loading (huge improvement)
  • Start of partial loading of backups (works for types without references)
  • Improved backup checksums

Modify

  • Refactor of all client code, much cleaner and easier to understand codebase
  • Offset system in place allows offloading validation & modify buffer preparation to db-client
  • Growing preallocated modify buffer (saves memory if a low amount is used)
  • Better support for async reference
  • Better migration using native lastIds where applicable
  • Better validation for most types - works better with customValidators as well
  • New api feature: Standardizes modify result: Promise

Aggregations

Interoperability

  • New package: Export to CSV
    • We're introducing a new dedicated package for generating compliant CSV files from dumped datasets

Schema

  • Infer typescript utility to infer types from the schema
  • Introduced Schema Migration format:
    • Allows you to define custom transformations between schema versions making it easy to migrate
  • New API feature: Schema hooks
    • Allows overwriting of each method for specific nodes
      e.g. url docs

General Fixes & Improvements

  • Fixed stability issues with .expire()
  • Fixed condition length of var string filters
  • Fixed out of bounds read for an edge case with search
  • Fixed incorrect timestamp validation, not allowing dates before 1970
  • Fixed incorrect reading of references data for certain edge cases
  • Fixed incorrect length encoding of filters on cardinality (from 2 to 4 bytes)
  • Fixed defaults for enums are now handled correctly
  • Fixed arbitrary unloading of WorkerCtx by napi external
    • solves filtering on compressed data (avoids segfault)
    • solves db process getting stuck when the db variable goes out of scope in js
  • Fixed all handling of modify cursor mismatches on error

Documentation & Examples

Based Platform

  • Alpha version of new environment hub & cli
    • Builds and watches large projects
    • Reconnects
    • Uses based-dbn on new env-hub this will go further in the future
  • Launcher for Linux testing on MacOS
  • Start of @based/protocol will centralize all protocols in 1 place
  • @saulx/utils is replaced with @based/utils use this in the future
  • @saulx/hash is replaced with @based/hash use this in the future

🚨 Breaking changes

  • *Changed the $count result in aggegrations to count
  • Filter operation has has been renamed to ìncludes. As shown in the docs
  • Removed transform opton from schema properties in favor of Schema Hooks
  • Removed upsert option from references modify api in favor of newly created db.upsert command. See the docs
  • BasedQueryResponse now uses id for node ids vs the queryId
  • Don't allow setting a string to text props without a locale

Based DB v0.0.71

15 Jul 19:22

Choose a tag to compare

🚨 Breaking Changes

  • Schema version bump to 5.0.0-alpha.27 (ed077bd5f)

🚀 Features

  • New CLI Tool:
    • Initial CLI implementation with login/logout (4f419bc7a, 74e40e4b0, 5ca200d0c)
    • Deploy command scaffolding (81025f932, 1266c051c)
    • Watch/build system integration (55104428b, 1672d3f02)
  • Aggregation Enhancements:
    • cardinality aggregation fixes and tests (527d2f66e, 4e03b4307, b7a203f3a)
    • hll_union implementation (30df23317, 41dfeebf4)
  • Schema & Data:
    • Support path: null in schemas (179d698c9)
    • New set function for data manipulation (271a0d4ae)

🐞 Fixes

  • Serialization:
    • Fixed integer serialization bug (5d7460acb)
    • Hash (big number) serialization test (999b35e7d)
  • Aggregations:
    • Fixed result placement for cardinality (5f881a060)
    • Validation error handling (527d2f66e)
  • Edge Cases:
    • Default edges handling (b65703a1a)
    • Transform test fixes (f4a83aba6)

🛠 Refactoring & Maintenance

  • Build system improvements:
    • Dynamic imports (13da7264d)
    • Concurrent watch scripts (7da428c85)
  • Code cleanup:
    • Removed debug logs (b70551bf2, 4d3ef51f9)
    • TypeScript and formatting (4a0ec71c7, eceadc405)

Performance

  • Fixed cardinality aggregation performance in group-by (b7a203f3a)

Note: This release introduces a new CLI tool and significant schema changes (v5 alpha). Developers should test thoroughly with the new schema version.

Based DB v0.0.70

09 Jul 16:08

Choose a tag to compare

Here’s the release notes for DB v0.0.70 schema 5.0.0-alpha.26:


🚀 Features

  • Timestamp Control:
    • Allow overwrite of create/update timestamps (2291e111c)
  • Schema Migrations:
    • Update schema transform during migrations (c457da958)

📚 Documentation

  • Added Text/String field documentation (896515cc1)

📦 Dependencies

  • Added fs-extra package (267574caf)

Note: This is a minor release focusing on timestamp flexibility and schema migration improvements.

v0.0.69

07 Jul 22:12

Choose a tag to compare

Based Db v0.0.69:

Warning: This release doesn't support node v21.*.

🚀 Features

  • Transforms & Filters:
    • Added text/filter transforms (ac8a6bf80, 812b4c000, 0aca984c9)
  • Defaults & Schema:
    • Support for default values in schema (786ce4e28, 68d4467ad, 9083074d1)
    • Async schema save on changes (467829b86, 9c00d3555)
  • Performance & Optimization:
    • Slight serialization optimizations (9eb4ccd97, 5140e8843)
    • Better block verification (04f09ea28, 6ff75bfee)

🐞 Fixes

  • Schema & Saving:
    • Fix race condition in save() (0e8e61434)
    • Only save if path exists (29304e68b)
    • Handle schema edge cases (467829b86, a13382683)
  • Worker & Threads:
    • Graceful shutdown of DbWorker/IoWorker (5bff37007, f682af8c2, fc27b4cb5)
    • Fixed async termination (33cf41cb1, 1f5ad5f1a)
  • Misc:
    • Revert to var pointers for stability (4582295e1, df30e3517)
    • Debugging fixes (8ceac38d7, 0615d9465)

🧹 Refactor & Cleanup

  • Codebase:
    • Removed deprecated selva_fields_set() (b50f179f2)
    • Cleaned unused dependencies (4594d7329, 4903267ed, 4a105b65b)
  • Documentation:
    • Added aggregation API docs (9d57897b4)
    • Improved doc comments (8d7a1a7e0, 72f05f828)

📦 Infrastructure

  • Build & Dependencies:
    • Node.js v22+ requirement (029d61eb5)
    • Removed Turbo/analytics packages (4903267ed, 4a105b65b)
    • Fixed build scripts (9083074d1)

Performance

  • Increased aggregation test threshold (92261d6f9)
  • Optimized block handling (e4dbeb9f4, 6c4204d50)

Full Changelog: See commits.


Icons: 🚀 Feature, 🐞 Fix, 🧹 Refactor, 📦 Infrastructure, ⚡ Performance

DB Release v0.0.68

03 Jul 02:25

Choose a tag to compare

🚀 Release v0.0.68

Since packages are combined in the main Based repo this release still refers only to DB package changes since v0.0.66 (0.0.67 was deprecated due to Linux incompatibility).

🚀 Features

  • GroupBy Enhancements:
    • Faster GROUP BY operations (1c8dc7400)
    • Support for ENUM types in references (12fbad6c9, b801bf2fa)
    • Cardinality blueprint and stddev aggregation (4306bd80e, e33cdf16c, 76cf72812)
  • Numeric Types & Aggregations:
    • Improved handling of numeric types (564f24395, 5d917f757)
    • Aggregation fixes for min, avg, and f64 reading (5654f2885, 865c71612, fd0a8b0dc)
    • Descriptive stats functions (56e142e10)
  • Performance & Scalability:
    • Partial block loading (c9d24f7c7, 331e84420)
    • Configurable BLOCK_CAPACITY in schema (2802ef8b8)
    • Optimized colvec support (d9413f864, 08cd4e890, f63e85707)
  • Worker Improvements:
    • Generic Worker class for extensibility (2d2b5a2f5, 1f44402eb)
    • Better IoWorker job handling (d279cb782, 37f35b007)

🐞 Fixes

  • Memory/type fixes: uint8array in deepCopy (e1dac9670), memcpy/memset implicit declarations (e06064b45)
  • Schema/loading: Fix schema.bin usage (91e4a515e), block unloading (8c0b7495f)
  • Aggregation/reference bugs: Result sizing (64e40e7c6), misplaced current_value (625cde407)
  • Fallbacks: Text search (251daab29), filter handling (68b372128)

🧹 Refactor & Cleanup

  • Replaced csmt with simpler struct (bae2353ca), renamed merkleTree to verifTree (63f33e5d7)
  • Deduplicated finalization logic (7afecb7db), cleaned worker initialization (9b400cd73)
  • Removed unused code (a339ed4df, e33cdf16c)

📚 Docs & Tests

  • Added doc comments (178960680, 3c70bf10d)
  • New tests: Enum types (15a2d70a6), numeric types (7afecb7db), aggregation references (4b179a770)

Performance

  • Faster refs handling (946330c2a), optimized dirty range checks (0cde0c048)

Db v0.0.67

02 Jul 19:05

Choose a tag to compare

🚀 Release v0.0.67

Since packages are combined in the main Based repo this release still refers only to DB package changes since v0.0.66.

🚀 Features

  • GroupBy Enhancements:
    • Faster GROUP BY operations (1c8dc7400)
    • Support for ENUM types in references (12fbad6c9, b801bf2fa)
    • Cardinality blueprint and stddev aggregation (4306bd80e, e33cdf16c, 76cf72812)
  • Numeric Types & Aggregations:
    • Improved handling of numeric types (564f24395, 5d917f757)
    • Aggregation fixes for min, avg, and f64 reading (5654f2885, 865c71612, fd0a8b0dc)
    • Descriptive stats functions (56e142e10)
  • Performance & Scalability:
    • Partial block loading (c9d24f7c7, 331e84420)
    • Configurable BLOCK_CAPACITY in schema (2802ef8b8)
    • Optimized colvec support (d9413f864, 08cd4e890, f63e85707)
  • Worker Improvements:
    • Generic Worker class for extensibility (2d2b5a2f5, 1f44402eb)
    • Better IoWorker job handling (d279cb782, 37f35b007)

🐞 Fixes

  • Memory/type fixes: uint8array in deepCopy (e1dac9670), memcpy/memset implicit declarations (e06064b45)
  • Schema/loading: Fix schema.bin usage (91e4a515e), block unloading (8c0b7495f)
  • Aggregation/reference bugs: Result sizing (64e40e7c6), misplaced current_value (625cde407)
  • Fallbacks: Text search (251daab29), filter handling (68b372128)

🧹 Refactor & Cleanup

  • Replaced csmt with simpler struct (bae2353ca), renamed merkleTree to verifTree (63f33e5d7)
  • Deduplicated finalization logic (7afecb7db), cleaned worker initialization (9b400cd73)
  • Removed unused code (a339ed4df, e33cdf16c)

📚 Docs & Tests

  • Added doc comments (178960680, 3c70bf10d)
  • New tests: Enum types (15a2d70a6), numeric types (7afecb7db), aggregation references (4b179a770)

Performance

  • Faster refs handling (946330c2a), optimized dirty range checks (0cde0c048)

4.0.4

25 Mar 08:20

Choose a tag to compare

  • Support cluster: 'local' in connect options
  • Handle invalid payload in error handler