greskell
Haskell binding for Gremlin graph query language
https://github.com/debug-ito/greskell/
| Version on this page: | 1.0.0.1 |
| LTS Haskell 24.17: | 2.0.3.3 |
| Stackage Nightly 2025-10-29: | 2.0.3.3 |
| Latest on Hackage: | 2.0.3.3 |
greskell-1.0.0.1@sha256:880bc32607c5695ea1006af9961b3251e8b48d0519549e5a3c1066d121de031d,6560greskell
Haskell binding for Gremlin query language.
See the package description, or project README.
Author
Toshio Ito [email protected]
Changes
Revision history for greskell
1.0.0.1 – 2019-12-30
- Confirm test with
base-4.13.0.0
1.0.0.0 – 2019-12-27
- Add some test cases to server-behavior-test
- Add PMap and NonEmptyLike modules.
Data.Greskell module
- Export PMap module.
Graph module - Element class and ElementID
- [BREAKING CHANGE] Now
ElementIDis a newtype forGValue. It was an associated type family inElementclass. However, I think there was no point to make it polymorphic. - [BREAKING CHANGE] Remove
EdgeVertexIDtype family fromEdgeclass. - [BREAKING CHANGE] Add
ElementDataclass, and set it as a super class ofElement. - [BREAKING CHANGE] Type of the ID field for
AVertex,AEdgeandAVertexPropertyis nowElementID, notGValue. - Add
unsafeCastElementIDfunction. - Add
ElementPropertyContainertype family toElementclass. It’s necessary forgValueMaptraversal.
Graph module - “reference” model for graph element types
Now the graph element types don’t contain properties. They only have their ID and label (and the value if it’s a VertexProperty). This is because some graph implementation of TinkerPop don’t return properties when it returns graph elements. See #6.
- [BREAKING CHANGE] Remove
avPropertiesfield fromAVertex. - [BREAKING CHANGE] Remove
aeInVLabel,aeOutVLabel,aeInV,aeOutVandaePropertiesfields fromAEdge. - [BREAKING CHANGE] Remove
avpPropertiesfield fromAVertexProperty. - [BREAKING CHANGE] Move
PropertyMapclass,FromGraphSONWithKeyclass,PropertyMapSingletype,PropertyMapListtypes and related functions toGraph.PropertyMapmodule. They are now all deprecated. UsePMapmodule instead.
Graph module - Key for element property
- [BREAKING CHANGE] Internal of
Keyis modified fromGreskell TexttoText, so that it can be an instance ofPMapKeyclass. - [BREAKING CHANGE] Add
KeyNoValuedata constructor forKeyValuetype. - Add
unsafeCastKeyfunction. - Add
Keystype and related functions.
GTraversal module
- [BREAKING CHANGE] Change the signature of the following functions
because now
ElementIDis a newtype, not a type alias.sV'gV'sE'
- Add
gValueMap,gProjectandgByLfunctions. - Add
LabeledByProjectiontype. - Add
unsafeCastStartandunsafeCastEndfunctions toToGTraversalclass.
Extra module
- [BREAKING CHANGE] Remove
writeAllPropertiesbecausePropertyMapis deprecated. - Add
writeKeyValuesfunction. - Add
writePMapPropertiesfunction. - Add
(<=:>)and(<=?>)operators. - Re-export property reader functions such as
lookupAs.
AsLabel module
- Now
SelectedMapis a specialized type alias forPMap. - [BREAKING CHANGE]
lookup,lookupM,lookupAsandlookupAsMare now re-exports fromPMapmodule, whose signature is more polymorphic than the original ones and have a different exception type. - [BREAKING CHANGE]
AsLookupExceptionis removed. UsePMapLookupExceptioninstead. - Make
AsLabelan instance ofPMapKey. - Add
IsStringinstance toAsLabel.
0.2.3.1 – 2019-10-02
- Confirm test with
semigroups-0.19.1.
0.2.3.0 – 2019-01-01
- Add Extra module.
0.2.2.0 – 2018-11-23
- Add new
AsLabelmodule.
GTraversal module
- Add
gAs,gSelect1,gSelectN,gSelectBy1,gSelectByN,gOutV,gOutV',gInV,gInV'functions.
Binder module
- Add
newAsLabelfunction.
0.2.1.1 – 2018-10-03
- Confirm test with
base-4.12.0.0
0.2.1.0 – 2018-08-17
GTraversal module
- Add
(<$.>),(<*.>),gLimit,gTail,gSkip,gId,gLabelfunctions.
0.2.0.3 – 2018-07-24
- Confirmed test with
doctest-discover-0.2.0.0.
0.2.0.2 – 2018-06-24
- Confirmed test with
doctest-0.16.0.
0.2.0.1 – 2018-06-24
- .cabal: Now
hint-testflag hasmanual: Truesetting. The hint-test may be sometimes unstable, so the user should be able to disable it in a stable way. See https://github.com/commercialhaskell/stackage/pull/3758
0.2.0.0 – 2018-06-21
- Confirmed test with
aeson-1.4.0.0andhint-0.8.0.
Graph module
-
BREAKING CHANGE: Now
AVertex,AEdge,AVertexPropertyare based onGValuetype, instead ofGraphSON Value. This is for taking care of possibly nested GraphSON-encoded values in a generic way. -
BREAKING CHANGE:
parseOneValue,parseListValues,parseNonEmptyValuesfunctions now requireFromGraphSONconstraint, instead ofFromJSON, because property types ofAVertexetc have changed. -
Add
Cardinalitytype and its enum instances. -
Add
KeyValuetype and(=:)operator. -
(internal change):
PropertyMapGenericis now based onHashMap.Strict.
The top Data.Greskell module
- Re-export
GMapandAsIteratormodules.
GTraversal module
- Add
gV,gV',gAddE,gAddE',gFrom,gTo,gProperty,gPropertyV,sAddV,sAddV'.
0.1.1.0 – 2018-04-08
- Add Semigroup instance to PropertyMapSingle and PropertyMapList.
- Confirmed test with base-4.11 (with hint-test and server-test disabled)
0.1.0.0 – 2018-03-12
- First version. Released on an unsuspecting world.