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


Description

Zef is an open source, data-oriented toolkit of modules for graph data. It gives Python developers more power and flexibility with graph data. Zef consists of an immutable, in-memory database, versioned graphs, data streams, composable lazy operators, effects handling, and GraphQL support. You can pick and choose the modules you need for your project.

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

  • 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 don't want to learn a new query language like Cypher or GSQL (I just want to use Python)
  • I need a GraphQL API that's easy to spin up and close to my data model
  • I want an easy and visible way to compose functions into pipelines with subscriptions


Features

  • in-memory, immutable database
  • fully versioned graphs
  • work with your data like local data structures
  • no separate query language
  • no ORM
  • query and transform data using Python with composable lazy operators
  • GraphQL API with low impedance mismatch to data model
  • data streams and subscriptions
  • automatically store, sync, distribute graphs securely with ZefHub


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.


💆 Get started 💆

from zef import *          # you'll see with our functional operators why we violate PEP in the first line
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                    # uid is used to retrieve a graph uid

# ---------------- 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 graph 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 stores, 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.6a1.tar.gz (600.6 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.6a1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

zef-0.15.6a1-cp310-cp310-macosx_10_15_x86_64.whl (6.0 MB view details)

Uploaded CPython 3.10macOS 10.15+ x86-64

zef-0.15.6a1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

zef-0.15.6a1-cp39-cp39-macosx_10_15_x86_64.whl (6.0 MB view details)

Uploaded CPython 3.9macOS 10.15+ x86-64

zef-0.15.6a1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

File details

Details for the file zef-0.15.6a1.tar.gz.

File metadata

  • Download URL: zef-0.15.6a1.tar.gz
  • Upload date:
  • Size: 600.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.8.10

File hashes

Hashes for zef-0.15.6a1.tar.gz
Algorithm Hash digest
SHA256 34a0b9f9b35a3ffa5593b3569baca498bd13453a025d18f9ad7b3a9d6cbf1d37
MD5 9a500fe7e2caab80c8de4b3a6a7551e2
BLAKE2b-256 33e62aa1c5d7d36986bbdd18c9f89ebc4ba0d0a9c6d4205ce24aebd9dbab0cb4

See more details on using hashes here.

File details

Details for the file zef-0.15.6a1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for zef-0.15.6a1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 aa89bccae3ce0903c5a991749a1f4faf30c12ba8801c5267ca52b370a856a7d0
MD5 387e14bab93eb08a188bfa23c03c4b74
BLAKE2b-256 638410d7aef069a536b722c62faf0280efa78e275387914b2a4a32dce8bcb3de

See more details on using hashes here.

File details

Details for the file zef-0.15.6a1-cp310-cp310-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for zef-0.15.6a1-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 18092f2294ce976acde7e5f41d1fb84f884b5a53e2ea2ebb5a40a3781250a297
MD5 351a2f883a8d7165619c69f38c6a7d8a
BLAKE2b-256 42f942d3fb375e549fab5a748dca614e9c7c3af9b1900c7d6bd22f61cc01e345

See more details on using hashes here.

File details

Details for the file zef-0.15.6a1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for zef-0.15.6a1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d733d24a6d0c5b99af7d0d28b02af28d9275fbbaf4feafdc4a63a516e203bc72
MD5 12aaef34a523148cbedb94688952881d
BLAKE2b-256 9201a3a56b2c978d81ca8b85322a23ca4fac174e034f507e1e8c416daf4fbf09

See more details on using hashes here.

File details

Details for the file zef-0.15.6a1-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for zef-0.15.6a1-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 dcce4a2fc9591b882708297c62b92ad96bd7ce6650d8ee0e0d743e022ffbd28f
MD5 6f948e4ee26059eb041d0b8dbd602182
BLAKE2b-256 ffed360a84c9f3b6daa5c313605b4b3964c053e4a032bb3ac2929b10914982f9

See more details on using hashes here.

File details

Details for the file zef-0.15.6a1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for zef-0.15.6a1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2e150d7a4d2211e4cd7c11c8a3e1e14122bbb6b17bef44e807ddf8e2cbe7ea6a
MD5 f0ceab33fdb5d9a847fdf044872da2ba
BLAKE2b-256 fdb3eaf136209c07dab1400da6d7557844b1b8313678a11d7d5bbf2e6a68de2c

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

0.15.8

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

This release

0.15.6a1 This release

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