cayley v0.6.1 Release Notes
Release Date: 2017-04-12 // about 7 years ago-
๐ This release marks community build number three. It includes all the pending features that can be merged before v0.7, which will be a major release to introduce Reification, and may cause breaking changes.
๐ The storage format was not changed for this release. Existing databases should work properly without any migration needed.
๐ Cayley now supports multiple SQL flavors, including MySQL and CockroachDB.
๐ To avoid further confusion, our Gremlin-style query language was renamed to Gizmo to emphasize that it's not fully Gremlin-compliant. We also switched to the Goja JavaScript VM for better performance and ES5.1 support. Error handling was also improved for our query language.
๐ This release introduces an experimental GraphQL implementation. Note that it only shares a similar syntax and does not support schema yet. It's a preview feature, so the implementation or API may change in following releases.
โก๏ธ The import and export formatter system is now modular and can be easily extended. Cayley now supports JSON-LD, Graphviz (aka DOT; export only) and custom binary formats for better import speed. The HTTP API was updated (v2) to support the new formatter system and allows for the streaming of large amounts of data in single request.
The recursive iterator is finally available via the Go path library and Gizmo. It allows traversal of a path recursively to potentially unlimited depth.
A new Schema library was implemented to allow developers to save and load complex Go objects with a single method call.
Highlights:
- ๐ Support for MySQL and CockroachDB.
- Gizmo query language with faster ES5.1-complaint VM (supersedes Gremlin).
- Experimental GraphQL-like query language.
- Modular import/export formats system.
- ๐ Support for JSON-LD, Graphviz (DOT) and Cayley-specific binary format.
- ๐ HTTP API v2 with better import/export performance for large data files.
- ๐ Recursive iterator support (FollowRecursive).
- Schema lib (aka ORM or Object Persistence Layer).
- IRI prefix registration.
Full changelog:
dennwc: gizmo: expose recursive traversal and update docs dennwc: path: FollowRecursive traverses quad.Values barakmich: add FollowRecursive to the path lib barakmich: graph/iterator: Add Recursive iterator dennwc: graphql: close iterator properly; fixes #545 dennwc: tests: require.NoError instead of Nil dennwc: gae: fix nop iterator optimization dennwc: sql: append WHERE only if constraints are present dennwc: http: CORS, API to get supported formats and RO mode fix dennwc: quads: add json stream format dennwc: mql: fix NPE dennwc: gephi: allow to filter quads in raw mode dennwc: gephi: inline primitive values automatically; inline schema:url dennwc: gephi: initial support for graph stream jtorvald: Updated documentation based on Issue #349 (#541) caosiyang: docs: fix a typo in Quickstart-As-Application.md (#542) jtorvald: Issue #286 init db and config documentation (#538) Yannic: graph: cleanup and more robust options handling (#536) dennwc: initial graphql support dennwc: cli: fix loading of data for non-persistent backend jtorvald: docs: replace broken MQL link, add quick-start cli usage example (#535) mikaelcabot: CockroachDB transaction retries (#534) dennwc: bolt: make bolt concurrent-safe as it should be dennwc: gizmo/gremlin: fix tags for Both traversal; fix #532 dennwc: fix #530 and write errors as plain json dennwc: quad: support for graphviz format dennwc: memstore: close iterator properly dennwc: memstore: do not hash values in QuadDirection dennwc: memstore: no recursion in Next dennwc: http: use formats - implement write api v2; resolves #176 dennwc: mongo: allow to pass full urls; fix #526 dennwc: add missing build tags; find relative path of data files automatically dennwc: sql: support flavors: mysql, cockroachdb dennwc: mongo: remove nodes with no references; fix #517 dennwc: gizmo: allow to register custom IRI prefixes; resolves #505 barakmich: revert proto GetNativeValue and check for crashing nils on describe barakmich: Fill literal strings in MQL the same way we do results in Gremlin dennwc: gremlin: fix limit in ForEach; fixes #518 barakmich: Fix non-persistent load, modernize MQL test barakmich: Fix -v option and debug error barakmich: Tidy up Optional iterator, and allow MQL to support JS-like string syntax dennwc: switch to goja (gizmo) barakmich: Fix dependencies, make Docker an optional dependency, add build tags for docker and appengine tests mzats: Updated examples so that they work in repl/http. (#499) barakmich: Remove IsNode() from the graph.Value definition. dennwc: schema: move well-known types package dennwc: graph: refactor interfaces dennwc: add example for schema library dennwc: ported schema lib dennwc: use vocabulary constants for value types, allow to shorten and expand IRIs dennwc: register known rdf vocabularies, add constants joostverdoorn: Add missing gojsonld dependency to glide (#502) dennwc: bolt/leveldb: stop complaining about existing quads even if ignore is set dennwc: http/repl: handle errors correctly dennwc: nquads: remove duplicated code dennwc: integrate quad formats, replace exporter, use quad helpers in tests dennwc: quad: readers, writers and formats. dennwc: Update minimal Go version dwhitena: Ability to pass the Mongo Backend an externally managed session. (#486) pbsladek: Update quickstart for 0.6.0 (#487) dennwc: add github issue template dennwc: sql: fix sqlNodeIterator size dennwc: fix count iterator dennwc: path: test both optimized and unoptimized case; few more test for gremlin kaneshin: Fix minor typos (#483) barakmich: Add arm64 support