greskell
Haskell binding for Gremlin graph query language
https://github.com/debug-ito/greskell/
| LTS Haskell 24.16: | 2.0.3.3 |
| Stackage Nightly 2025-10-24: | 2.0.3.3 |
| Latest on Hackage: | 2.0.3.3 |
greskell-2.0.3.3@sha256:dba9e99d4fa353746ee41996d1b45c5fdc29d9358f4a30b7ff7ce2bd47654314,7424Module documentation for 2.0.3.3
greskell
Haskell binding for Gremlin query language.
See the package description, or project README.
Author
Toshio Ito [email protected]
Changes
Revision history for greskell
2.0.3.3 – 2025-01-30
- Binder: now
newBindproduces an expression like((__v0)), that is, a variable name wrapped with double parens. (see https://github.com/debug-ito/greskell/issues/18 ) While this is basically backward-compatible, it can break a user code if it depends on the internal of theGreskellreturned bynewBind. - Support ghc-9.12 (base-4.21).
2.0.3.2 – 2024-11-05
- Bump dependency version bounds.
2.0.3.1 – 2024-09-12
- Update dependency version bounds with cabal-plan-bounds. This adds support for new packages, while drops support for old ones.
2.0.3.0 – 2023-02-24
- Add
GTraversal.Genmodule (see https://github.com/debug-ito/greskell/issues/15 )
2.0.2.0 – 2023-01-11
- Add
oDescandoAscfunctions (Gremlinmodule) ( https://github.com/debug-ito/greskell/pull/14 )
2.0.1.0 – 2022-11-24
- Confirm test with ghc-9.2.5, vector-0.13.0.0 and aeson-2.1.0.0.
- Remove doctests. This is because it’s so difficult to maintain doctests with recent GHCs and cabals.
- doctests have been moved to
examplesfunction defined in some modules. - @ners helped a lot in https://github.com/debug-ito/greskell/pull/12
- doctests have been moved to
- Add the following functions ( https://github.com/debug-ito/greskell/pull/13 )
gElementMap(GTraversalmodule)toGremlinKeys(Graphmodule)
- Use stylish-haskell to format codes.
2.0.0.0 – 2021-12-28
- BREAKING CHANGE: Now greskell uses
aeson-2.0. As a result, now implementation ofData.Aeson.Objecthas been changed fromHashMaptoKeyMap. Some types in greskell (e.g.Binding) directly uses theObjecttype. - Confirm test with
aeson-2.0.2.0,semigroups-0.20,hashable-1.4.0.1,doctest-0.19,doctest-0.20. - Add
showWalkType,showLiftandshowSplitfunctions, but those are only for testing purposes. hint-test-suiteis removed. Instead,typecheck-test-suiteis added, which is more robust and lightweight.
1.2.0.2 – 2021-11-08
- Confirm test with
base-4.15.0.0.
1.2.0.1 – 2021-02-11
- Confirm test with
doctest-0.18.
1.2.0.0 – 2020-12-29
- Add
Logicmodule.
Gremlin module
- Add
PLikeclass. - BREAKING CHANGE Generalize signatures of the following functions
using
PLike. You may encounter compile errors if the compiler fails to infer the type.pEqpNeqpLtpLtepGtpGtepInsidepOutsidepBetweenpWithinpWithout
GTraversal module
- Add the following functions. (Fix for #10)
gWhereP1gWhereP1'gWhereP2gWhereP2'gMatchmPattern
- Add the following types.
MatchPatternMatchResult
Gremlin module
- Add
LabeledPtype.
1.1.0.3 – 2020-06-21
- Confirm test with
base-4.14.0.0.
1.1.0.2 – 2020-06-06
- Support
doctest-0.17.
1.1.0.1 – 2020-05-30
- Support
aeson-1.5.0.0.
1.1.0.0 – 2020-04-26
GTraversal module
- BREAKING CHANGE
gFlatMapis now polymorphic about the WalkTypes. UsegFlatMap'For monomorphic version. - Add the following functions.
gFlatMap'gCoalescegIterategPathgPathBy
- Document change: Now
gProjectis a “Transformation step”, andgUnfoldis an “Accessor step”.
Graph module
- Add the following types.
PathPathEntry
- Add the following functions.
pathToPMapmakePathEntry
Extra module
- Add
gWhenEmptyInputfunction.
AsLabel module
- Derive
Hashableinstance forAsLabel. - Add
unsafeCastAsLabelfunction.
1.0.1.0 – 2020-04-24
GTraversal module
- Add the following functions.
gRepeatgTimesgUntilHeadgUntilTailgEmitHeadgEmitTailgEmitHeadTgEmitTailTgLoopsgIsgIs'gIsPgIsP'gCyclicPathgCyclicPath'gSimplePathgSimplePath'gUniongChoose3gConstantgLocalgBarriergDedupgDedupNgUnfold
- Add the follwing types.
RepeatUntilRepeatEmitRepeatPosRepeatLabel
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.