Current Limitations
What Graphersal 0.1.0 does not do, in one place. Each item links to the page with the details; the deliberate differences from Apache TinkerPop are listed one by one in TinkerPop Deviations, and the steps and scenarios that are not implemented yet in TinkerPop Compliance.
Data model
- No date or time values. They come with a date type in 0.2.0. A GraphSON import skips dates
and reports them (GraphSON); a schema refuses
"format": "date-time"(Schemas). - One value per property key. Only
Cardinality.singleis written; store several values as one array (Upserts). There are no meta-properties: a GraphSON import folds them into the_metaproperty. - Ids are strings. A numeric id becomes its text, and ids order as strings (
"10"before"9"; see Id Arguments and Predicates). - Edges have one label; vertices have a label set (Multi-Label Vertices).
- No property index.
has(key, value)is checked while the start step scans; only ids and labels are looked up through an index (Query Optimizer). - The graph lives in memory. A Store makes it durable, but the whole graph is loaded into memory when the store is opened.
Query language
- The DSL is Rhai, not Groovy. Queries read like Gremlin in either spelling (
hasLabelorhas_label), but maps are written#{..}, child traversals need__.(where(__.out())) and tokens need their class (Order.desc,Scope.local). A Gremlin text query is not parsed as it is. - No
withStrategies()/withoutStrategies(). Execution options are set withg.with(key, value)(Execution Options Reference). - No
g.tx(). Every traversal is one unit of work; a host can run a whole script as one unit (Transactions). - No Cypher or GQL front end yet; the multi-label storage is the groundwork for one.
- Saved queries only read and are called at the start of a traversal (
g.query(..)), not on incoming traversers (Saved Queries).
Schema
- No map type (
additionalPropertieswith a schema), nooneOf/allOf/not, no tuples, and noformatother thanuuid(Schemas). defaultis an annotation only: it is never written or substituted (defaultis not applied).
Security and serving
- Read security per element or label does not exist yet; an authorizer decides per request kind and label as the plan states it (Permissions).
- The dev server (
graphersal --server, also MCP and AI Chat) is a local development tool: unstable, bound to the loopback, without authentication (Dev Server and MCP).
Other
- Compression rules cover strings at a path of names; values inside arrays are not compressed (Compressed Properties).
- Generated test data is English only.