rserv 0.5.3

This is both a bugfix release, and a major upgrade release for rserv, the graph-enhanced REST api prototyping server. After a year without updates, you get countless bugfixes that had been piling up and great concurrency improvements.
https://github.com/ha1tch/rserv

It's a single, no-frills python script you can just drop and run.

Development work resumes in Olu, an identical api-compatible new project written in Go with better performance and safety features.

Olu still doesn't come with Sulpher (the small subset of Neo4js Cypher), but it will soon.

#rserv #python #webdev

I'm thinking that regarding Doxstorr, granular control of ACID behaviour would make sense in the context of transaction execution and not so much on a per-query basis.

If anybody knows any document databases that let you have extremely granular control of ACID-ity, please let me know!

#rserv #doxstorr #python #foss #documentdb #database

This approach also allows for future refinement, such as adding more granular levels or even allowing per-transaction ACID levels for extremely fine-tuned control in advanced use cases.

Take that, Mongo! đŸ€Ł

#doxstorr #rserv #python #foss

What's next in store for Doxstorr:
Making performance trade-offs a configurable setting with four levels of ACID compliance (or three! if relaxed compliance/non-compliance is not considered a level of ACID compliance :-)

RELAXED (Level 0):
Minimal ACID guarantees
No forced disk writes
No transaction logging
READ_UNCOMMITTED isolation
No upfront lock acquisition
No rollback on failure

BASIC (Level 1):
Basic ACID compliance
Transaction logging (but no forced flush)
READ_COMMITTED isolation
No upfront lock acquisition
Basic rollback on failure

STANDARD (Level 2):
Standard ACID compliance
Transaction logging with soft flush
REPEATABLE_READ isolation
Upfront lock acquisition
Full rollback on failure

STRICT (Level 3):
Full ACID compliance
Transaction logging with forced disk writes
SERIALIZABLE isolation
Upfront lock acquisition
Full rollback on failure

#rserv #doxstorr #python #graphdb #foss

This is also a very preliminary alpha, super early peek into what I hope will eventually become a pluggable document store for rserv. Fittingly called doxstorr.

With ACID!

https://github.com/ha1tch/doxstorr

#rserv #doxstorr #python #foss

GitHub - ha1tch/doxstorr

Contribute to ha1tch/doxstorr development by creating an account on GitHub.

GitHub

Sulpher is the little subset of Cypher (Neo4j's query language) that I'm working on.

I added nore examples of queries that can be expressed in Sulpher:
https://github.com/ha1tch/rserv/blob/main/manual/rserv-manual_0.3.9-part3-basicgraph.md

Here are other graph features that can be accessed via the REST api without need of Sulpher (tSome of these endpoints translate your REST request to Sulpher under the hood)
https://github.com/ha1tch/rserv/blob/main/manual/rserv-manual_0.3.9-part4-graphoperations.md

In the Misc section there's a bit more interesting code example on how to use these graph things from your own Python application, or from wherever you can hit a RESTful http api. It implements the basics to access the graph data of a group of bloggers, with blogs, posts, tags, and comments.

https://github.com/ha1tch/rserv/blob/main/manual/rserv-manual_0.3.9-part6-misc.md

Hope somebody finds it useful!

#rserv #python #graphdb #foss #sulpher #cypher #neo4j

rserv/manual/rserv-manual_0.3.9-part3-basicgraph.md at main · ha1tch/rserv

A lightweight REST prototyping server. Contribute to ha1tch/rserv development by creating an account on GitHub.

GitHub

In more than one way.

#rserv #python #graphdb #foss

Today was a good day.

#rserv #python #graphdb #FOSS

.2. Advanced Relationship Handling (direction, multiple types):

MATCH (alice:User {name: "Alice"})-[r:FRIENDS|COLLEAGUES]->(user:User)
RETURN user.name, type(r)

Finding users who are both friends and colleagues of Alice.

#rserv #python #rest #graph #graphdb #cypher #sulpher #neo4j

  • Variable-length path expressions:
  • like, for example:

    MATCH p=(alice:User {name: "Alice"})-[*..]->(user:User)
    RETURN user.name

    Finding all users connected to Alice, regardless of the path length.

    #rserv #python #rest #graph #graphdb #cypher #sulpher #neo4j