Releases: atelier-saulx/based
Release version v1.1.15
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
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,roleandreadOnlyoption in @based/schema
Release version v0.1.3
(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
🚀 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
- Date/time & intervals in Aggregations: Aggregate functions now supports date, time, and interval data types.
- Grouping by time windows, named intervals (day, week, ISO week, ISO year, etc) with timezone support
- Group by reference node IDs
BaseTypeoptions for'vector'(8/16/32-bit integers and 32/64-bit floating-points)- New harmonic_mean aggregation function
- Improved [stddev and variance option to compute on sample or population mode
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
- Allows overwriting of each method for specific nodes
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
- Start of documentation can be found here
- Northwind sample dataset - comparing SQL to BasedDb
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/utilsuse this in the future - @saulx/hash is replaced with
@based/hashuse this in the future
🚨 Breaking changes
- *Changed the
$countresult in aggegrations tocount - Filter operation
hashas been renamed toìncludes. As shown in the docs - Removed
transformopton from schema properties in favor of Schema Hooks - Removed
upsertoption from references modify api in favor of newly createddb.upsertcommand. 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
🚨 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)
- Initial CLI implementation with login/logout (
- Aggregation Enhancements:
cardinalityaggregation fixes and tests (527d2f66e,4e03b4307,b7a203f3a)hll_unionimplementation (30df23317,41dfeebf4)
- Schema & Data:
- Support
path: nullin schemas (179d698c9) - New
setfunction for data manipulation (271a0d4ae)
- Support
🐞 Fixes
- Serialization:
- Fixed integer serialization bug (
5d7460acb) - Hash (big number) serialization test (
999b35e7d)
- Fixed integer serialization bug (
- Aggregations:
- Fixed result placement for
cardinality(5f881a060) - Validation error handling (
527d2f66e)
- Fixed result placement for
- Edge Cases:
- Default edges handling (
b65703a1a) - Transform test fixes (
f4a83aba6)
- Default edges handling (
🛠 Refactoring & Maintenance
- Build system improvements:
- Dynamic imports (
13da7264d) - Concurrent watch scripts (
7da428c85)
- Dynamic imports (
- Code cleanup:
- Removed debug logs (
b70551bf2,4d3ef51f9) - TypeScript and formatting (
4a0ec71c7,eceadc405)
- Removed debug logs (
⚡ 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
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)
- Allow overwrite of create/update timestamps (
- Schema Migrations:
- Update schema transform during migrations (
c457da958)
- Update schema transform during migrations (
📚 Documentation
- Added Text/String field documentation (
896515cc1)
📦 Dependencies
- Added
fs-extrapackage (267574caf)
Note: This is a minor release focusing on timestamp flexibility and schema migration improvements.
v0.0.69
Based Db v0.0.69:
Warning: This release doesn't support node v21.*.
🚀 Features
- Transforms & Filters:
- Added text/filter transforms (
ac8a6bf80,812b4c000,0aca984c9)
- Added text/filter transforms (
- Defaults & Schema:
- Support for default values in schema (
786ce4e28,68d4467ad,9083074d1) - Async schema save on changes (
467829b86,9c00d3555)
- Support for default values in schema (
- Performance & Optimization:
- Slight serialization optimizations (
9eb4ccd97,5140e8843) - Better block verification (
04f09ea28,6ff75bfee)
- Slight serialization optimizations (
🐞 Fixes
- Schema & Saving:
- Fix race condition in
save()(0e8e61434) - Only save if path exists (
29304e68b) - Handle schema edge cases (
467829b86,a13382683)
- Fix race condition in
- Worker & Threads:
- Graceful shutdown of
DbWorker/IoWorker(5bff37007,f682af8c2,fc27b4cb5) - Fixed async termination (
33cf41cb1,1f5ad5f1a)
- Graceful shutdown of
- Misc:
- Revert to var pointers for stability (
4582295e1,df30e3517) - Debugging fixes (
8ceac38d7,0615d9465)
- Revert to var pointers for stability (
🧹 Refactor & Cleanup
- Codebase:
- Removed deprecated
selva_fields_set()(b50f179f2) - Cleaned unused dependencies (
4594d7329,4903267ed,4a105b65b)
- Removed deprecated
- Documentation:
- Added aggregation API docs (
9d57897b4) - Improved doc comments (
8d7a1a7e0,72f05f828)
- Added aggregation API docs (
📦 Infrastructure
- Build & Dependencies:
- Node.js v22+ requirement (
029d61eb5) - Removed Turbo/analytics packages (
4903267ed,4a105b65b) - Fixed build scripts (
9083074d1)
- Node.js v22+ requirement (
⚡ 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
🚀 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 BYoperations (1c8dc7400) - Support for
ENUMtypes in references (12fbad6c9,b801bf2fa) - Cardinality blueprint and
stddevaggregation (4306bd80e,e33cdf16c,76cf72812)
- Faster
- Numeric Types & Aggregations:
- Improved handling of numeric types (
564f24395,5d917f757) - Aggregation fixes for
min,avg, andf64reading (5654f2885,865c71612,fd0a8b0dc) - Descriptive stats functions (
56e142e10)
- Improved handling of numeric types (
- Performance & Scalability:
- Partial block loading (
c9d24f7c7,331e84420) - Configurable
BLOCK_CAPACITYin schema (2802ef8b8) - Optimized
colvecsupport (d9413f864,08cd4e890,f63e85707)
- Partial block loading (
- Worker Improvements:
- Generic
Workerclass for extensibility (2d2b5a2f5,1f44402eb) - Better
IoWorkerjob handling (d279cb782,37f35b007)
- Generic
🐞 Fixes
- Memory/type fixes:
uint8arrayindeepCopy(e1dac9670),memcpy/memsetimplicit declarations (e06064b45) - Schema/loading: Fix
schema.binusage (91e4a515e), block unloading (8c0b7495f) - Aggregation/reference bugs: Result sizing (
64e40e7c6), misplacedcurrent_value(625cde407) - Fallbacks: Text search (
251daab29), filter handling (68b372128)
🧹 Refactor & Cleanup
- Replaced
csmtwith simpler struct (bae2353ca), renamedmerkleTreetoverifTree(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
🚀 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 BYoperations (1c8dc7400) - Support for
ENUMtypes in references (12fbad6c9,b801bf2fa) - Cardinality blueprint and
stddevaggregation (4306bd80e,e33cdf16c,76cf72812)
- Faster
- Numeric Types & Aggregations:
- Improved handling of numeric types (
564f24395,5d917f757) - Aggregation fixes for
min,avg, andf64reading (5654f2885,865c71612,fd0a8b0dc) - Descriptive stats functions (
56e142e10)
- Improved handling of numeric types (
- Performance & Scalability:
- Partial block loading (
c9d24f7c7,331e84420) - Configurable
BLOCK_CAPACITYin schema (2802ef8b8) - Optimized
colvecsupport (d9413f864,08cd4e890,f63e85707)
- Partial block loading (
- Worker Improvements:
- Generic
Workerclass for extensibility (2d2b5a2f5,1f44402eb) - Better
IoWorkerjob handling (d279cb782,37f35b007)
- Generic
🐞 Fixes
- Memory/type fixes:
uint8arrayindeepCopy(e1dac9670),memcpy/memsetimplicit declarations (e06064b45) - Schema/loading: Fix
schema.binusage (91e4a515e), block unloading (8c0b7495f) - Aggregation/reference bugs: Result sizing (
64e40e7c6), misplacedcurrent_value(625cde407) - Fallbacks: Text search (
251daab29), filter handling (68b372128)
🧹 Refactor & Cleanup
- Replaced
csmtwith simpler struct (bae2353ca), renamedmerkleTreetoverifTree(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)