Skip to main content
Yanked

This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Consider using release 0.1.71 instead.
Reason given by maintainers: Replaced by new zef 0.2+ (different project)

A data-oriented toolkit for graph data

versioned graphs + streams + query using Python + GraphQL

Workflow status badge

Docs   |   Blog   |   Chat   |   ZefHub


gif showing Zef demo intro


Description

Zef is an open source, data-oriented toolkit for graph data. It combines the access speed and local development experience of an in-memory data structure with the power of a fully versioned, immutable database (and distributed persistence if needed with ZefHub). Furthermore, Zef includes a library of composable functional operators, effects handling, and native GraphQL support. You can pick and choose what you need for your project.

If any of these apply to you, Zef might help:

  • I need a graph database with fast query speeds and hassle-free infra
  • I need a graph data model that's more powerful than NetworkX but easier than Neo4j
  • I need to "time travel" and access past states easily
  • I like Datomic but prefer something open source that feels like working with local data structures
  • I would prefer querying and traversing directly in Python, rather than a query language (like Cypher or GSQL)
  • I need a GraphQL API that's easy to spin up and close to my data model


Features

  • a graph language you can use directly in Python code
  • fully versioned graphs
  • in-memory access speeds
  • free and real-time data persistence (via ZefHub)
  • work with graphs like local data structures
  • no separate query language
  • no ORM
  • GraphQL API with low impedance mismatch to data model
  • data streams and subscriptions


Status

Zef is currently in Public Alpha.

  • Private Alpha: Testing Zef internally and with a closed group of users.
  • Public Alpha: Anyone can use Zef but please be patient with very large graphs!
  • Public Beta: Stable enough for most non-enterprise use cases.
  • Public: Stable for all production use cases.


Installation

The platforms we currently support are 64-bit Linux and MacOS. The latest version can be installed via the PyPI repository using:

pip install zef

This will attempt to install a wheel if supported by your system and compile from source otherwise. See INSTALL for more details if compiling from source.

Check out our installation doc for more details about getting up and running once installed.



Using Zef

Here's some quick points to get going. Check out our Quick Start and docs for more details.

A quick note, in Zef, we overloaded the "|" pipe so users can chain together values, Zef operators (ZefOps), and functions in sequential, lazy, and executable pipelines where data flow is left to right.


💆 Get started 💆

from zef import *          # these imports unlock user friendly syntax and powerful Zef operators (ZefOps)
from zef.ops import *

g = Graph()                # create an empty graph

🌱 Add some data 🌱

p1 = ET.Person | g | run                  # add an entity to the graph

(p1, RT.FirstName, "Yolandi") | g | run   # add "fields" via relations triples: (source, relation, target)

🐾 Traverse the graph 🐾

p1 | Out[RT.FirstName]         # one hop: step onto the relation

p1 | out_rel[RT.FirstName]     # two hops: step onto the target

⏳ Time travel ⌛

p1 | time_travel[-2]                                           # move reference frame back two time slices

p1 | time_travel[Time('2021 December 4 15:31:00 (+0100)')]     # move to a specific date and time

👐 Share with other users (via ZefHub) 👐

g | sync[True] | run                            # save and sync all future changes on ZefHub

# ---------------- Python Session A (You) -----------------
g | uid | to_clipboard | run                    # copy uid onto local clipboard

# ---------------- Python Session B (Friend) -----------------
graph_uid: str = '...'                          # uid copied from Slack/WhatsApp/email/etc
g = Graph(graph_uid)
g | now | all[ET] | collect                     # see all entities in the latest time slice

🚣 Choose your own adventure 🚣


📌 A note on ZefHub 📌

Zef is designed so you can use it locally and drop it into any existing project. You have the option of syncing your graphs with ZefHub, a service that persists, syncs, and distributes graphs automatically (and the company behind Zef). ZefHub makes it possible to share graphs with other users and see changes live, by memory mapping across machines in real-time!

You can create a ZefHub account for free which gives you full access to storing and sharing graphs forever. For full transparency, our long-term hope is that many users will get value from Zef or Zef + ZefHub for free, while ZefHub power users will pay a fee for added features and services.



Roadmap

We want to make it incredibly easy for developers to build fully distributed, reactive systems with consistent data and cross-language (Python, C++, Julia) support. If there's sufficient interest, we'd be happy to share a public board of items we're working on.



Contributing

Thank you for considering contributing to Zef! We know your time is valuable and your input makes Zef better for all current and future users.

To optimize for feedback speed, please raise bugs or suggest features directly in our community chat https://zef.chat.

Please refer to our CONTRIBUTING file and CODE_OF_CONDUCT file for more details.



License

Zef is licensed under the Apache License, Version 2.0 (the "License"). You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0



Dependencies

The compiled libraries make use of the following packages:

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zef-0.15.8.tar.gz (641.4 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

zef-0.15.8-cp310-cp310-win_amd64.whl (2.9 MB view details)

Uploaded CPython 3.10Windows x86-64

zef-0.15.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

zef-0.15.8-cp310-cp310-macosx_10_15_x86_64.whl (4.0 MB view details)

Uploaded CPython 3.10macOS 10.15+ x86-64

zef-0.15.8-cp39-cp39-win_amd64.whl (2.9 MB view details)

Uploaded CPython 3.9Windows x86-64

zef-0.15.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

zef-0.15.8-cp39-cp39-macosx_10_15_x86_64.whl (4.0 MB view details)

Uploaded CPython 3.9macOS 10.15+ x86-64

zef-0.15.8-cp38-cp38-win_amd64.whl (2.9 MB view details)

Uploaded CPython 3.8Windows x86-64

zef-0.15.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

zef-0.15.8-cp37-cp37m-win_amd64.whl (2.9 MB view details)

Uploaded CPython 3.7mWindows x86-64

zef-0.15.8-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

File details

Details for the file zef-0.15.8.tar.gz.

File metadata

  • Download URL: zef-0.15.8.tar.gz
  • Upload date:
  • Size: 641.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.10

File hashes

Hashes for zef-0.15.8.tar.gz
Algorithm Hash digest
SHA256 e9a31b2d3d51a00612d5eda58e90181c81fc5d82ff74495bfbaec87786f35d7d
MD5 26976242cdeaecda745d9bc4ea6b1c87
BLAKE2b-256 e2104c5d1cca3381d5854cce4e1a0f3004375e6eb724373c713a86b010b9362a

See more details on using hashes here.

File details

Details for the file zef-0.15.8-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: zef-0.15.8-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 2.9 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.10

File hashes

Hashes for zef-0.15.8-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0bd24519c98f3d727bd5153e56eec872b3074779efded158892ca11216a1bfd2
MD5 1b4990b90ca3c3a6c528ad06725316a9
BLAKE2b-256 3a1604cc2ac62672aa562128a3c9466af7ca417ae1b17ac14b75399cae2823d8

See more details on using hashes here.

File details

Details for the file zef-0.15.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for zef-0.15.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3e2d0354c51cf59256bc9fe14a57ca0b47388eed674368b28da4660effa6cd79
MD5 8928b32ac27258404bb48b67f43765e6
BLAKE2b-256 d6bb56b503985293f5059623d690bfe18a6261e1cebdcf3054bf5ac7a56e84bf

See more details on using hashes here.

File details

Details for the file zef-0.15.8-cp310-cp310-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for zef-0.15.8-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 78b503f1ebfc1bbe840a2cdbe62a5c9e4413ee057c42cb26a229a103694e4215
MD5 00a778a8c40d8c6f3920b748a3f156b4
BLAKE2b-256 b50b3459dd36fce72c5b76355989755b37eca04ec4211fdfb427bfe469e1f1c8

See more details on using hashes here.

File details

Details for the file zef-0.15.8-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: zef-0.15.8-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 2.9 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.10

File hashes

Hashes for zef-0.15.8-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 72f60c74618e43dc52a050d5e31ed850cc3809f62e568e2f739a05093c5f3eb3
MD5 a5b24eb852d5e2f6f9fb3e90d3e155fc
BLAKE2b-256 e8a451d5df77bfb66b008e5146586b01a9a4ccd3a6d0d0a09db5b20ec121a383

See more details on using hashes here.

File details

Details for the file zef-0.15.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for zef-0.15.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b5ce501f9f916a35a98e4ba7262582e3a00d6682f12d5ade45a25e2aaf062b0e
MD5 12474f9aecdd00ae39c5e7dee65cdcea
BLAKE2b-256 e21d264f00d1d1c8a0a67b54eb3a7dac7991207924f96b7fc2587f552137db99

See more details on using hashes here.

File details

Details for the file zef-0.15.8-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for zef-0.15.8-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 0982b9c6bf51cfd31dd3b799cdfd53c6ae6f95772b428f960fbd4b7f4ffcab9f
MD5 f911bb690861fa69846ba3e4bae1703c
BLAKE2b-256 e2612e859fa6df50176cdbca8d9d8a13ca3f2474182278d99971cdb0d47af571

See more details on using hashes here.

File details

Details for the file zef-0.15.8-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: zef-0.15.8-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 2.9 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.10

File hashes

Hashes for zef-0.15.8-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 f2a408ddbe351de558409f02f54e14dc6ac2afa877fd02f787de1d19d5db0d7f
MD5 18071eeab73e78bdb8a395114d255a28
BLAKE2b-256 ef0bbc26d1925221a8840287164f4e7b91557527d7e00150bc77677572e7001c

See more details on using hashes here.

File details

Details for the file zef-0.15.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for zef-0.15.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c38dd41b215f45940f73d878a4996b5c47eb906c3220f1fcf68dedd5042a8ac4
MD5 eae60b9a1a6a7e63fd9f0e06b311d079
BLAKE2b-256 8cc4c544fe4a40c7878d238fd5175e84d10db20887dab542f6ebb5aa0ccf4a38

See more details on using hashes here.

File details

Details for the file zef-0.15.8-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: zef-0.15.8-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 2.9 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.10

File hashes

Hashes for zef-0.15.8-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 5757bb16f61bdc3f42f30f98a92ff93bb5e974f5e7a096139876af04864f3e29
MD5 a7db5eefa521c49d7a2c38f4f61c8243
BLAKE2b-256 9e9a19944c145f6c7e5546fd0760a3cfc9dbbb93ec41232106d17d58bcd2bbbb

See more details on using hashes here.

File details

Details for the file zef-0.15.8-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for zef-0.15.8-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9e9c37d982ab26c82838c2c1f61b28e278ada55f269815f5e6d99ceca8ec80e5
MD5 3265e30b96c5f82cc1cd84a40102a583
BLAKE2b-256 b53508e225eda45f60a18151ae1583928f4dda5b43530fea54e0f2ee3d1d386e

See more details on using hashes here.

Release history Release notifications | RSS feed

0.18.0a3

10 files

0.18.0a2

7 files

0.18.0a1

7 files

0.17.2a9

10 files

0.17.2a8

2 files

0.17.2a6

2 files

0.17.2a4

2 files

0.17.2a2

7 files

0.17.1

9 files

0.17.1a1

7 files

0.17.0

9 files

0.17.0a5

7 files

0.17.0a4

5 files

0.17.0a3

5 files

0.17.0a2

5 files

0.17.0a1

5 files

0.16.7

14 files

0.16.6

14 files

0.16.5

14 files

0.16.4

14 files

0.16.3.post11

9 files

0.16.3.post8

7 files

0.16.3.post7

7 files

0.16.3.post6

7 files

0.16.3.post5

7 files

0.16.3.post4

7 files

0.16.3.post3

6 files

0.16.3.post2

7 files

0.16.3.post1

7 files

0.16.3

7 files

0.16.2

7 files

0.16.1

7 files

0.16.1a1.dev2

1 file

0.16.1a1.dev1

1 file

0.16.0

7 files

0.16.0a10

4 files

0.16.0a9

5 files

0.16.0a8

5 files

0.16.0a7

5 files

0.16.0a6

5 files

0.16.0a5

5 files

0.16.0a4

5 files

0.16.0a3

5 files

0.16.0a2

5 files

0.16.0a1

5 files

0.16.0a1.dev4

1 file

0.16.0a1.dev3

1 file

0.16.0a1.dev2

1 file

0.16.0a1.dev1

1 file

0.15.9a1

5 files

This release

0.15.8 This release

11 files

0.15.8a4

4 files

0.15.8a3

5 files

0.15.8a2

5 files

0.15.8a1

5 files

0.15.8a1.dev1

1 file

0.15.7

11 files

0.15.7a7

5 files

0.15.7a6

5 files

0.15.7a5

5 files

0.15.7a4

5 files

0.15.7a3

5 files

0.15.7a2

5 files

0.15.7a1

11 files

0.15.7a1.dev1

1 file

0.15.6.post1

11 files

0.15.6

11 files

0.15.6a3.post1

7 files

0.15.6a3

7 files

0.15.6a3.dev4

1 file

0.15.6a3.dev3

1 file

0.15.6a2

7 files

0.15.6a1

6 files

0.15.5

6 files

0.15.5a1

6 files

0.15.5a1.dev2

1 file

0.15.5a1.dev1

1 file

0.1.71

3 files

0.1.70

3 files

0.1.69

3 files

0.1.67

3 files

0.1.66

3 files

0.1.65

3 files

0.1.64

3 files

0.1.63

3 files

0.1.62

3 files

0.1.61

3 files

0.1.60

3 files

0.1.59

3 files

0.1.58

3 files

0.1.57

2 files

0.1.56

2 files

0.1.55

2 files

0.1.54

2 files

0.1.53

2 files

0.1.52

2 files

0.1.51

2 files

0.1.50

2 files

0.1.49

2 files

0.1.48

2 files

0.1.47

2 files

0.1.46

2 files

0.1.45

2 files

0.1.44

2 files

0.1.43

2 files

0.1.42

2 files

0.1.41

2 files

0.1.40

2 files

0.1.39

2 files

0.1.38

2 files

0.1.37

2 files

0.1.36

2 files

0.1.34

2 files

0.1.33

2 files

0.1.32

2 files

0.1.31

2 files

0.1.30

2 files

0.1.29

2 files

0.1

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page