https://github.com/tonsky/datascript/releases/tag/1.3.0 Skip to content Sign up * Why GitHub? + Features - + Mobile - + Actions - + Codespaces - + Packages - + Security - + Code review - + Issues - + Integrations - + GitHub Sponsors - + Customer stories - * Team * Enterprise * Explore + Explore GitHub - + Learn and contribute + Topics - + Collections - + Trending - + Learning Lab - + Open source guides - + Connect with others + The ReadME Project - + Events - + Community forum - + GitHub Education - + GitHub Stars program - * Marketplace * Pricing + Plans - + Compare plans - + Contact Sales - + Education - [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this user All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} tonsky / datascript Public * * Notifications * Star 4.4k * Fork 275 * * Code * Issues 65 * Pull requests 8 * Discussions * Actions * Projects 0 * Wiki * Security * Insights More * Code * Issues * Pull requests * Discussions * Actions * Projects * Wiki * Security * Insights 1. Releases 2. 1.3.0 Compare Choose a tag to compare [ ] Could not load tags Nothing to show {{ refName }} default (*) Loading View all tags 1.3.0 Latest Latest @tonsky tonsky released this 1.3.0 feb04f5 Compare Choose a tag to compare [ ] Could not load tags Nothing to show {{ refName }} default (*) Loading View all tags New pull implementation Pull has been a great API for a long time in Datomic and DataScript, with only one gotcha: it wasn't performant. Up to the point where building pull tree manually using entities would outperform pull, even with all entities overhead. This seemed weird, because pull has much more information ahead of time, which could be leveraged for optimizations. Well, you don't have to compromise performance for convenience anymore. DataScript 1.3.0 features much faster pull implementation: * Up to 7 times faster than old impl * Up to 2,5 times faster than doing pull through entities * Up to 4 times faster than Datomic in-memory Numbers depend on particular database/pattern, so don't trust them too much! Also in new impl: * Support :xform * Cached parse results * Fixed wildcard + recursion bug: [* {:child ...}] did not work before * A callback to track all entities touched by pull (usable for reactive dependency tracking) Also in 1.3.0 * Simplified benchmark code * Ability to override query parse cache: datascript.query/ *query-cache* Benchmark Some raw numbers from built-in benchmark (ms per operation, lower is better). Clojure: Benchmark Entities Old pull New pull pull-one 0.6 2.5 0.5 pull-many 1.9 5.4 0.8 pull-wildcard n/a n/a 1.1 ClojureScript: Benchmark Entities Old pull New pull pull-one 1.7 7.3 1.3 pull-many 5.2 15.1 2.2 pull-wildcard n/a n/a 2.8 Datomic in-memory: Benchmark Entities Pull pull-one 0.7 0.8 pull-many 2.3 2.5 pull-wildcard n/a 4.7 Assets 3 * datascript-1.3.0.min.js 443 KB * Source code (zip) * Source code (tar.gz) 13 people reacted 13 * (c) 2021 GitHub, Inc. * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.