A Scala library for Neo4j that provides a type-safe, Anorm-inspired API for executing Cypher queries over HTTP.
AnormCypher is a Scala library for interacting with Neo4j graph databases via HTTP. It provides a type-safe, Anorm-inspired API that allows developers to execute Cypher queries, handle transactions, and parse results seamlessly within Scala applications. It solves the problem of cumbersome, low-level HTTP communication with Neo4j by offering a high-level, developer-friendly interface.
Scala developers building applications with Neo4j, especially those already familiar with Play Framework's Anorm library or seeking a type-safe, functional approach to graph database operations.
Developers choose AnormCypher for its intuitive API that reduces boilerplate, its seamless integration with Scala's pattern matching and collection APIs, and its support for reactive streaming and transactions, making it a robust alternative to raw HTTP clients or other Neo4j drivers.
Neo4j Scala library based on Anorm in the Play Framework
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Modeled after Play's Anorm, it provides an intuitive interface for Scala developers, as stated in the README's philosophy to deliver a 'great developer experience'.
Uses Play's Enumerator/Iteratee API to handle large datasets without memory exhaustion, enabling efficient streaming of Neo4j results, as detailed in the 'Reactive Streaming' section.
Offers a Loan Pattern-based transaction API with automatic commit/rollback, simplifying atomic operations in Neo4j, demonstrated in the 'Transaction API' examples.
Allows extraction of query results using Scala pattern matching and a parser API, ensuring type safety and reducing runtime errors, with examples in 'Using Pattern Matching'.
The README explicitly notes that the Parser API is 'a work in progress,' limiting its reliability and features for complex parsing needs.
Different versions are required for different Play and Scala versions (e.g., 0.10.0 for Play 2.5.3, 0.9.1 for Play 2.4.x), complicating setup and maintenance.
Relies on Neo4j's HTTP endpoints, missing out on the performance benefits of the binary Bolt protocol used by official Neo4j drivers.
Requires manual configuration of WSClient, Neo4jConnection, and ExecutionContext instances, adding initial overhead compared to more integrated solutions.