5 comments

  • shahar_biron 2 days ago ago

    For other coding options, we added spring-data based similar library (Java users): https://github.com/FalkorDB/spring-data-falkordb And for Go developers: https://github.com/FalkorDB/falkordb-go-orm

  • justinlords 2 days ago ago

    This looks solid, the type safety and automatic escaping alone would've saved me hours debugging Cypher strings. The batching is smart too. Curious how it handles variable-length paths though, since that's where most ORMs get messy. The AI agent memory use case makes a lot of sense.

    • hello-tmst a day ago ago

      Great question — variable-length paths are fully supported in the query builder:

      # Friends of friends (1 to 3 hops)

          stmt = select().match(
              (User.alias("a"), FRIEND.variable_length(1, 3), User.alias("b"))
          ).where(
              User.alias("a").user_id == 1
          ).returns(
              User.alias("b")
          )
      
      Generates: `(a)-[:FRIEND1..3]->(b)`

      *Variants:* - Unbounded: `FRIEND.variable_length()` → `` - Exact length: `FRIEND.variable_length(2, 2)` → `2` - Min only: `FRIEND.variable_length(1)` → `1..` - Range: `FRIEND.variable_length(1, 3)` → `*1..3`

      You can also use the explicit `VariableLength(FRIEND, 1, 3)` constructor if you need to alias the path or reference it later in the query.

      The builder handles all edge cases (empty paths, cycles) the same way RedisGraph does — we compile to idiomatic Cypher without abstraction leaks. Raw string patterns still work if you need something exotic.

  • shahar_biron 2 days ago ago

    BTW, in falkordb we also developed an ORM library, also covering RBAC based security features. https://github.com/FalkorDB/falkordb-py-orm

    • hello-tmst a day ago ago

      Thanks for sharing these resources — great to see the FalkorDB ecosystem growing! We built GraphORM with a focus on type safety + fluent query composition (e.g., indegree()/outdegree() helpers, chainable .match().where().returns()), which we found missing in existing RedisGraph/FalkorDB Python tooling. Happy to see multiple approaches emerging — diversity helps the ecosystem. We're also planning to expand support beyond RedisGraph/FalkorDB to other Cypher-compatible databases where the query model fits. Would love to exchange ideas on ORM design patterns if you're open to it.