Skip to content

Commit

Permalink
0.3.0 release
Browse files Browse the repository at this point in the history
  • Loading branch information
tonsky committed Aug 25, 2014
1 parent 18e3bbf commit 5ad4116
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 6 deletions.
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
# 0.3.0

Proper entities implementation:

- Entities are now lazy and implement usual Map protocols
- When accessing attribute of `:db/valueType :db.type/ref`, its value will be automatically expanded to entites, allowing for recursive exploration of entities graphs (e.g. `(-> (d/entity db 42) :parent :parent :children)`)
- Entities support backwards navigation (e.g. `(:person/_friends (d/entity db 42))`)

# 0.2.1

- Externs file now can be referred as `:externs [datascript/externs.js"]`
Expand Down
14 changes: 10 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Also check out this blog post about [how DataScript fits into the current webdev
:dependencies [
[org.clojure/clojurescript "0.0-2311"]
...
[datascript "0.2.1"]
[datascript "0.3.0"]
]

;; for advanced optimizations externs are needed
Expand Down Expand Up @@ -103,16 +103,22 @@ Also check out this blog post about [how DataScript fits into the current webdev
DataScript can be used from any JS engine without additional dependencies:

```html
<script src="datascript-0.2.0.min.js"></script>
<script src="datascript-0.3.0.min.js"></script>
```

[Download datascript-0.2.0.min.js](https://github.com/tonsky/datascript/releases/download/0.2.0/datascript-0.2.0.min.js), 40k gzipped.
[Download datascript-0.3.0.min.js](https://github.com/tonsky/datascript/releases/download/0.3.0/datascript-0.3.0.min.js), 43k gzipped.

Queries:

* Query and rules should be EDN passed as strings
* Results of `q` are returned as regular JS arrays

Entities:

* Entities returned by `entity` call are lazy as in Clojure
* Use `e.get("prop")`, `e.get(":db/id")`, `e.db` to access entity properties
* Entities implement ECMAScript 6 Map interface (has/get/keys/...)

Transactions:

* Use strings such as `":db/id"`, `":db/add"`, etc. instead of db-namespaced keywords
Expand All @@ -135,6 +141,7 @@ The following features are supported:
* Triple store model
* EAVT, AEVT and AVET indexes
* Multi-valued attributes via `:db/cardinality :db.cardinality/many`
* Lazy entities and `:db/valueType :db.type/ref` auto-expansion
* Database “mutations” via `transact!`
* Callback-based analogue to txReportQueue via `listen!`
* Direct index lookup and iteration via `datoms` and `seek-datoms`
Expand Down Expand Up @@ -163,7 +170,6 @@ Expected soon:

* Better error reporting
* Support for components in schema
* Lazy entities
* Proper documentation

## Differences from Datomic
Expand Down
2 changes: 1 addition & 1 deletion project.clj
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
(defproject datascript "0.2.1"
(defproject datascript "0.3.0"
:description "An implementation of Datomic in-memory database and Datalog query engine in ClojureScript"
:license {:name "Eclipse"
:url "http://www.eclipse.org/legal/epl-v10.html"}
Expand Down
2 changes: 1 addition & 1 deletion src/datascript/preamble.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/**
* Datascript v0.2.1
* Datascript v0.3.0
*
* Copyright 2014 Nikita Prokopov
*
Expand Down

0 comments on commit 5ad4116

Please sign in to comment.