<commit_before>[[introduction]]
= Introduction
:description: This chapter provides an introduction to the APOC library, and instructions for installation and use.




ifdef::backend-html5[]
++++
<iframe width="560" height="315" src="https://www.youtube.com/embed/V1DTBjetIfk" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
++++
endif::[]

Neo4j 3.x introduced the concept of user-defined procedures and functions.
Those are custom implementations of certain functionality, that can't be (easily) expressed in Cypher itself.
They are implemented in Java and can be easily deployed into your Neo4j instance, and then be called from Cypher directly.

The APOC library consists of many (about 450) procedures and functions to help with many different tasks in areas like data integration, graph algorithms or data conversion.


[NOTE]
====
.APOC Name History

http://matrix.wikia.com/wiki/Apoc[Apoc^] was the technician and driver on board of the Nebuchadnezzar in the Matrix movie. He was killed by Cypher.

*APOC* was also the first bundled http://neo4j.com/blog/convenient-package-neo4j-apoc-0-1-released/[A Package Of Component^] for Neo4j in 2009.

*APOC* also stands for "Awesome Procedures On Cypher"
====

Starting from Neo4j 4.1.1, there are two available versions of the APOC Library:

_APOC Core_ :: battle hardened procedures and functions that don't have external dependencies or require configuration.
_APOC Full_ :: contains everything in APOC core, as well as additional procedures and functions.<commit_msg>Improve clarity on editions and add some links (#2244) (#2305)<commit_after>[[introduction]]
= Introduction
:description: This chapter provides an introduction to the APOC library, and instructions for installation and use.




ifdef::backend-html5[]
++++
<iframe width="560" height="315" src="https://www.youtube.com/embed/V1DTBjetIfk" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
++++
endif::[]

Neo4j 3.x introduced the concept of user-defined procedures and functions.
Those are custom implementations of certain functionality, that can't be (easily) expressed in Cypher itself.
They are implemented in Java and can be easily deployed into your Neo4j instance, and then be called from Cypher directly.

The APOC library consists of many (about 450) procedures and functions to help with many different tasks in areas like data integration, graph algorithms or data conversion.


[NOTE]
====
.APOC Name History

http://matrix.wikia.com/wiki/Apoc[Apoc^] was the technician and driver on board of the Nebuchadnezzar in the Matrix movie. He was killed by Cypher.

*APOC* was also the first bundled http://neo4j.com/blog/convenient-package-neo4j-apoc-0-1-released/[A Package Of Component^] for Neo4j in 2009.

*APOC* also stands for "Awesome Procedures On Cypher"
====

== APOC Editions - Core and Full

Starting from Neo4j 4.1.1, there are two available versions of the APOC Library:

_APOC Core_ :: battle hardened procedures and functions that don't have external dependencies or require configuration. This is also the based of the functionality available in https://neo4j.com/aura[Neo4j AuraDB^] which lists the https://neo4j.com/docs/aura/current/getting-started/apoc/[available APOC surface in their docs^].
_APOC Full_ :: contains everything in APOC core, as well as additional procedures and functions, which is available both in https://neo4j.com/sandbox[Neo4j Sandbox^], the https://neo4j.com/docs/operations-manual/current/docker/operations/#docker-neo4jlabs-pluginsneo4j.com[Docker image^] and https://neo4j.com/docs/desktop-manual/current/operations/#install-plugin[Neo4j Desktop^], as well as when you self-host the database and add the apoc-full jar.
{'fraction_non_alphanumeric': 0.09025367156208278, 'fraction_numerical': 0.019759679572763686, 'mean_word_length': 5.140983606557377, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 7, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4551827', 'n_tokens_mistral': 1140, 'n_tokens_neox': 1020, 'n_words': 438}