graphaware/neo4j-framework


GraphAware Neo4j Framework

License: GPL-3.0+

Language: Java

Keywords: java, neo4j, neo4j-graphaware-framework


GraphAware Neo4j Framework

Build Status | Downloads | Javadoc | Latest Release: 3.5.9.54

GraphAware Framework speeds up development with Neo4j by providing a platform for building useful generic as well as domain-specific functionality, analytical capabilities, (iterative) graph algorithms, etc.

See the announcement on our blog.

Features Overview

On a high level, there are two key pieces of functionality:

  • GraphAware Server is a Neo4j server extension that allows developers to rapidly build (REST) APIs on top of Neo4j using Spring MVC, rather than JAX-RS
  • GraphAware Runtime is a runtime environment for both embedded and server deployments, which allows the use of pre-built as well as custom modules called GraphAware Runtime Modules. These modules typically extend the core functionality of the database by
    • transparently enriching/modifying/preventing ongoing transactions in real-time
    • performing continuous computations on the graph in the background

Whether or not you use the code in this repository as a framework or runtime as described above, you can always use it as a software library by adding it as a dependency to your project, and take advantage of its useful features. For Java developers only(1), the following functionality is provided:

(1) i.e., for embedded mode users, managed/unmanaged extensions developers, GraphAware Runtime Module developers and framework-powered Spring MVC controller developers

Please take a look at the provided examples.

Framework Usage

Server Mode

When using Neo4j in the standalone server mode, deploying the GraphAware Framework (and any code using it) is a matter of :

  • downloading the appropriate .jar files
  • copying them into the plugins directory in your Neo4j installation (if you installed using .dmg installer, this will be in /Applications/Neo4j [Community|Enterprise] Edition.app/Contents/Resources/app/plugins/)
  • adding dbms.unmanaged_extension_classes=com.graphaware.server=/graphaware to neo4j.conf
  • restarting the server

The framework and modules are then used via calls to their REST APIs, if they provide any.

Embedded Mode / Java Development

Java developers that use Neo4j in embedded mode and those developing Neo4j server plugins, unmanaged extensions, GraphAware Runtime Modules, or Spring MVC controllers can include use the framework as a dependency for their Java project and use it as a library of useful tested code, in addition to the functionality provided for server mode.

Getting GraphAware Framework

Releases

To use the latest release, download the appropriate version and put it the plugins directory in your Neo4j server installation and restart the server (server mode), or on the classpath (embedded mode).

Releases are synced to Maven Central repository. When using Maven for dependency management, include one or more dependencies in your pom.xml. To find out which ones, read further by clicking on one of the sub-modules of this project.

Snapshots

To use the latest development version, just clone this repository and run mvn clean install. This will produce 3.5.9.55-SNAPSHOT jar files. If you need standalone .jar files with all dependencies, look into the target folders in the build directory.

Note on Versioning Scheme

The version number has two parts. The first three numbers indicate compatibility with a Neo4j version. The last number is the version of the framework. For example, version 2.2.0.28 is version 28 of the framework compatible with Neo4j 2.2.0

Data Collection

Note that framework sends a POST request to Google Analytics every 5 minutes after start just so we know how many people actually use it. The only data transmitted are module and controller class names, version and edition of the framework, and the database store ID.

If you wish to completely disable stats collection, please add the following to neo4j.conf:

com.graphaware.runtime.stats.disabled=true
com.graphaware.server.stats.disabled=true

License

Copyright (c) 2013-19 GraphAware

GraphAware is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Project Statistics

Sourcerank 12
Repository Size 7.69 MB
Stars 222
Forks 63
Watchers 47
Open issues 3
Dependencies 161
Contributors 20
Tags 114
Created
Last updated
Last pushed

Top Contributors See all

Michal Bachman atg103 Vojtech Havlicek Christophe Willemsen Luanne Misquitta Omar Rampado František Hartman Alessandro Negro Alberto De Lazzari Jasper Blues Johannes Mockenhaupt David Simons Michal Těhník aldrinm johnfreier Pieter Cailliau slowercz Eric Spiegelberg Janos Szendi-Varga david

Packages Referencing this Repo

com.graphaware.neo4j:common
General-Purpose Library of Neo4j-Related Code
Latest release 3.5.7.54 - Updated - 222 stars
com.graphaware.neo4j:tests
Tools for testing Neo4j-related and GraphAware-related code
Latest release 3.5.7.54 - Updated - 222 stars
com.graphaware.neo4j:server
Neo4j Server - Spring Framework Integration
Latest release 3.5.7.54 - Updated - 222 stars
com.graphaware.neo4j:api
Library that helps building APIs for Neo4j applications using Spring MVC rather than JAX-RS
Latest release 3.5.7.54 - Updated - 222 stars
com.graphaware.neo4j:tx-executor
Single and Batch Transaction Executor
Latest release 3.5.7.54 - Updated - 222 stars
com.graphaware.neo4j:runtime
Runtime for GraphAware Runtime Modules
Latest release 3.5.7.54 - Updated - 222 stars
com.graphaware.neo4j.example:friendship-strength-counter
Example of a Neo4j Transaction Event Handler with GraphAware Improved Transaction API
Latest release 3.4.0.52 - Updated - 222 stars
com.graphaware.neo4j.example:node-counter
Example of a Spring MVC controller built and deployed using the GraphAware Framework
Latest release 3.5.3.53 - Updated - 222 stars
com.graphaware.neo4j.example:performance-testing
Example of a Neo4j Performance Test with GraphAware Framework
Latest release 3.5.3.53 - Updated - 222 stars
com.graphaware.neo4j:generator
Library that generates configurable random graphs for testing and experimenting
Latest release 2.1.2.9 - Published - 222 stars
com.graphaware.neo4j:build
Technical Maven Module for Building the Framework
Latest release 3.5.3.53 - Updated - 222 stars
com.graphaware.neo4j:server-community
GraphAware Server for Neo4j Community
Latest release 2.2.6.35 - Updated - 222 stars
com.graphaware.neo4j:graphaware-framework-embedded
Technical Maven Module for Building the Framework for Embedded Use
Latest release 3.4.0.52 - Updated - 222 stars
com.graphaware.neo4j:framework-parent
Parent Project for GraphAware Neo4j Framework
Latest release 3.4.0.52 - Updated - 222 stars
com.graphaware.neo4j:graphaware-framework-server-enterprise
Technical Maven Module for Building the Framework for Standalone Use (Enterprise)
Latest release 2.2.6.35 - Updated - 222 stars
com.graphaware.neo4j:server-common
Neo4j Server - Spring Framework Integration
Latest release 2.2.6.35 - Updated - 222 stars
com.graphaware.neo4j:writer-api
GraphAware Database Writer API
Latest release 3.5.3.53 - Updated - 222 stars
com.graphaware.neo4j:graphaware-framework-server-community
Technical Maven Module for Building the Framework for Standalone Use (Community)
Latest release 2.2.6.35 - Updated - 222 stars
com.graphaware.neo4j:runtime-api
Runtime for GraphAware Runtime Modules
Latest release 3.5.3.53 - Updated - 222 stars
com.graphaware.neo4j.example:node-streaming
Example of a Spring MVC streaming controller built and deployed using the GraphAware Framework
Latest release 3.5.3.53 - Updated - 222 stars

Recent Tags See all

graphaware-parent-3.5.9.54 September 07, 2019
graphaware-parent-3.5.8.54 September 07, 2019
graphaware-parent-3.5.8.54 September 07, 2019
graphaware-parent-3.5.7.54 September 07, 2019
graphaware-parent-3.5.6.54 July 16, 2019
graphaware-parent-3.5.6.53 July 16, 2019
graphaware-parent-3.5.5.53 May 19, 2019
graphaware-parent-3.5.4.53 April 09, 2019
graphaware-parent-3.5.4.53 April 09, 2019
graphaware-parent-3.5.3.53 March 04, 2019
graphaware-parent-3.4.12.52 February 10, 2019
graphaware-parent-3.5.2.53 February 04, 2019
graphaware-parent-3.5.1.53 December 21, 2018
graphaware-parent-3.5.0.53 November 27, 2018
graphaware-parent-3.5.0.53-beta03 October 29, 2018

Something wrong with this page? Make a suggestion

Last synced: 2019-09-07 16:16:50 UTC

Login to resync this repository