truss
datascript
truss | datascript | |
---|---|---|
4 | 25 | |
296 | 5,359 | |
0.0% | - | |
5.9 | 7.7 | |
8 days ago | 10 days ago | |
Clojure | Clojure | |
Eclipse Public License 1.0 | Eclipse Public License 1.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
truss
-
Java 21: What’s New?
When type checking is needed, I find the Truss library* does the trick quite well.
As for the syntax, there is very little, which can make it a harder lift but once you have the hang of it you won't deal with the issues identified in the parent comment.
* https://github.com/taoensso/truss
-
Tired by the dynamicism
I use truss extensively throughout my code to prevent those types of errors.
-
Python dataclass equivalent
I haven't tried it myself. I generally just use truss for runtime constraint checking. I use a modified version that integrates scope-capture. And malli validation for more complex cases, but I try to limit that. For me it is better to validate individual attributes as needed, vs validating an entire "type"/collection of attributes. So each function only cares about the attributes that it needs, and validates only as needed.
-
Love Clojure, challenged by discoverability
Use assertions for all data requirements inside functions - I use a modified version of https://github.com/ptaoussanis/truss to ensure that I never get NullReference exceptions, and this also helps make functions more self-documenting. Also use this to assert return data.
datascript
- Datascript: Immutable database and Datalog query engine
-
Datalog in 100 lines of JavaScript (2022)
Hi pests, I don't think the criticism in the comments gives a full picture.
I wrote about a particular flavor of datalog, in common use today. [1] [2]. The earliest representation I know, which matches the syntax of my essay, was in SICP [3]
There's another, more academic form of datalog, which looks a lot more like prolog. Both have lots of similarities: both systems have a set of facts and rules. Both systems have can take a partially filled fact or rule, and find all matching facts. The more academic flavors of Datalog are useful for general logic, and particularly powerful for recursive questions. The variant I showed is more tailed for database queries.
[1] https://github.com/tonsky/datascript
-
XTDB on Mobile Possible?
There is also datascript as a similar option.
- FoundationDB: A Distributed Key-Value Store
-
wotbrew/relic: FRP for Clojure(Script)
What's the use case for relic? Sounds similar to https://github.com/tonsky/datascript ?
- Introduction to Datalog
- Clojure Turns 15 panel discussion video
-
Show HN: Cozo – new Graph DB with Datalog, embedded like SQLite, written in Rust
This look nice !
Datascript seems to be another Datalog engine (in memory only)
https://github.com/tonsky/datascript
-
Ergonomic inline SQL as a Python library
Inspired by past work: LINQ, inline-python, crepe, DataScript, Riffle.
-
Working with large maps
An in-memory database like Datascript may be worth looking into. Otherwise you could take an indexing approach: put all the data into one big map indexed by some unique key, and have a bunch of supplementary indexes that are updated on insertion.
What are some alternatives?
portal - A clojure tool to navigate through your data.
asami - A graph store for Clojure and ClojureScript
scope-capture - Project your Clojure(Script) REPL into the same context as your code when it ran
datahike - A durable Datalog implementation adaptable for distribution.
spec-tools - Clojure(Script) tools for clojure.spec
datalevin - A simple, fast and versatile Datalog database
ghostwheel - Hassle-free inline clojure.spec with semi-automatic generative testing and side effect detection
10000-markdown-files - 10,000 markdown files. Useful for stress testing note-taking tools.
malli - High-performance data-driven data specification library for Clojure/Script.
xtdb - An immutable database for application development and time-travel data compliance, with SQL and XTQL. Developed by @juxt
python-nrepl
Apache AGE - Graph database optimized for fast analysis and real-time data processing. It is provided as an extension to PostgreSQL. [Moved to: https://github.com/apache/age]