Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Clone this wiki locally
Is neo4j-client a complete command line interface (CLI)?
Absolutely. neo4j-client is designed to provide the best experience when working with Neo4j from the command line.
Does neo4j-client support multi-line input?
Yes. neo4j-client will evaluate a cypher statement when the enter key is pressed after the terminating semicolon (
;) is present. If there is no semicolon (
;), then the enter key will start a new line.
Can neo4j-client be scripted?
Yes. neo4j-client provides a non-interactive (batch) mode that supports reading of input from a file (e.g. movies.cyp), specified using the
--source file argument, or streamed in via stdin. The results will be written to stdout, or to a file specified using
--output file. In non-interactive mode, the default format for results is CSV.
Does neo4j-client support transactions?
Yes. Simply use the standard cypher statements
rollback;. Use of nested transactions is possible only if supported by Neo4j server.
Is libneo4j-client a complete neo4j driver?
Yes, and no. libneo4j-client aims to provide all the basic underpinnings required for communicating with a neo4j server, but it doesn't try to provide a complete driver experience. For example, a complete driver would likely provide high-level APIs for transactions, wrapping around "BEGIN", "COMMIT" and "ROLLBACK" statements. libneo4j-client provides no such API.
It is anticipated that libneo4j-client will be of most benefit for implementing complete drivers in other languages (which can call native C libraries), and thus providing higher-level abstractions will be better done using the idioms and techniques of the target language.
Is libneo4j-client thread safe?
Yes. All methods are re-entrant and there is no shared global state (aside from what OpenSSL has internally). Note, however, that the data structures are not synchronized: you can't share the same connection, session or result stream between multiple threads without external synchronization.
Does libneo4j-client re-use network connections?
No, but you can add your own pooling. As libneo4j-client has no global state, it doesn't save and re-use connections. However, it is possible to provide your own connection factory (see
struct neo4j_connection_factory to wrap the standard connection factory and thus re-use connections.
Does libneo4j-client pool memory?
No, but you can add your own pooling. See