Skip to main content

DjangoLDP

A Django package that extends Django REST Framework to serve models following the W3C Linked Data Platform convention, with support for RDF serialization and ActivityPub federation.

Getting Started

Check the official documentation.


Settings

  • OIDC_ACCESS_CONTROL_ALLOW_HEADERS: overrides the access control headers allowed in the Access-Control-Allow-Headers CORS header of responses. Defaults to authorization, Content-Type, if-match, accept, DPoP
  • ANONYMOUS_USER_NAME a setting inherited from dependency Django-Guardian
  • DJANGOLDP_PERMISSIONS: overrides the list of all permissions on all resources
  • SERIALIZER_CACHE: toggles the use of a built-in cache in the serialization of containers/resources
  • MAX_RECORDS_SERIALIZER_CACHE: sets the maximum number of serializer cache records, at which point the cache will be cleared (reset). Defaults to 10,000
  • SEND_BACKLINKS: enables the searching and sending of Activities to distant resources linked by users to this server
  • MAX_ACTIVITY_RESCHEDULES, DEFAULT_BACKOFF_FACTOR, DEFAULT_ACTIVITY_DELAY, DEFAULT_REQUEST_TIMEOUT tweaks the behaviour of the ActivityQueueService
  • STORE_ACTIVITIES: sets whether to store activities sent and backlinks received, or to treat them as transient (value should be "VERBOSE", "ERROR" or None). Defaults to "ERROR"
  • MAX_RECORDS_ACTIVITY_CACHE: sets the maximum number of serializer cache records, at which point the cache will be cleared (reset). If set to 0 disables the cache. Defaults to 10,000
  • ENABLE_SWAGGER_DOCUMENTATION: enables the automatic OpenAPI-based API schema and documentation generation, made available at http://yourserver/docs/ is the flag is set to True. Default to False
  • DISABLE_LOCAL_OBJECT_FILTER: disabled the LocalObjectBackendFilter which is processing-time costly and only need activation in federated architecture, so we preferred to add a way to disable it as a workaround for in-progress performances improvements. Default to False

Synopsis

This module is an add-on for Django REST Framework that serves a django model respecting the Linked Data Platform convention.

It aims at enabling people with little development skills to serve their own data, to be used with a LDP application.

Check technical documentation

Contribute to DjangoLDP

Testing

Packaged with DjangoLDP is a tests module, containing unit tests

You can extend these tests and add your own test cases by following the examples in the code. You can then run your tests with: python -m unittest djangoldp.tests.runner

Check your datas integrity

Because of the way the DjangoLDP's federation work, you can reach some integrity issue within your datas.

You can check them with:

./manage.py check_integrity

You can ignore some servers:

./manage.py check_integrity --ignore "https://server/,https://another-server/"

Add you own commands to the check_integrity from your own package

Create a check_integrity.py file within your app folder containing:

def add_arguments(parser):
  parser.add_argument(
    "--my-own-argument",
    default=False,
    nargs="?",
    const=True,
    help="Some help text",
  )

def check_integrity(options):
  if(options["my_own_argument"]):
    print("You ran a check_integrity with --my-own-argument!")
  else:
    print("Run me with `./manage.py check_integrity --my-own-argument`")

You can see a sample on the check_integrity.py file of DjangoLDP.

What's New in v5.0.0

Major Changes

  • Django 5 LTS - Upgraded to Django 5.2 LTS
  • Turtle Serialization - Full RDF Turtle parser and renderer (guide)
  • ETag Support - Conditional requests with If-Match, If-None-Match, If-Modified-Since
  • Link Headers - W3C LDP-compliant pagination and type headers
  • OPTIONS Method - Full implementation with Allow, Accept-Post, Accept-Patch
  • Prefer Headers - RFC 7240 support (return=minimal, return=representation)

Quick Examples

# Request Turtle format
curl -H "Accept: text/turtle" http://localhost:8000/users/

# Conditional update (prevents conflicts)
curl -X PUT -H "If-Match: W/\"abc123\"" -d '{"name":"updated"}' http://localhost:8000/users/1/

# Minimal response (faster)
curl -X POST -H "Prefer: return=minimal" -d '{"name":"new"}' http://localhost:8000/users/

Documentation

Document Description
Turtle Serialization How to use RDF Turtle format
HTTP Headers Complete headers reference
v5.0.0 Changelog Full list of changes
LDP Compliance W3C specification compliance
Architecture Codebase architecture

License

Licence MIT

Release files for djangoldp 5.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for djangoldp 5.1.0
File Size Uploaded
djangoldp-5.1.0.tar.gz 137.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for djangoldp 5.1.0
File Interpreter ABI Platform
djangoldp-5.1.0-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 321.6 kB

Release files / djangoldp-5.1.0.tar.gz

Download URL djangoldp-5.1.0.tar.gz
Size 137.2 kB
Tags Source
SHA-256 checksum
How to use checksums
8ad766d6f14f00d434618de0e87bb87555f73800076f0dfde52bae87bdaeb570
BLAKE2b-256 checksum
How to use checksums
11a607d99364da0b7fabdaef233bf14e2cdea382a482bbd369599a026b032e66
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.13 readme-renderer/46.0 requests/2.34.2 requests-toolbelt/1.0.0 urllib3/2.7.0 tqdm/4.70.1 importlib-metadata/9.0.1 keyring/25.7.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.11.16

Release files / djangoldp-5.1.0-py2.py3-none-any.whl

Download URL djangoldp-5.1.0-py2.py3-none-any.whl
Size 184.5 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
b167b540716a60ad570ab5905b652d81c967ef6b784e8619e6cff31be927861e
BLAKE2b-256 checksum
How to use checksums
0ddf1116d38a8910337e210a66544539f55d676ae9bf74d55c44db50be8843db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.13 readme-renderer/46.0 requests/2.34.2 requests-toolbelt/1.0.0 urllib3/2.7.0 tqdm/4.70.1 importlib-metadata/9.0.1 keyring/25.7.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.11.16

Release history Release notifications | RSS feed

This release

5.1.0 This release

2 release files

5.0.12

2 release files

5.0.10

2 release files

5.0.9

2 release files

5.0.8

2 release files

5.0.7

2 release files

5.0.6

2 release files

5.0.5

2 release files

5.0.4

2 release files

5.0.3

2 release files

5.0.2

2 release files

5.0.1

2 release files

5.0.0

2 release files

4.0.8

2 release files

4.0.7

2 release files

4.0.6

2 release files

4.0.5

2 release files

4.0.4

2 release files

4.0.3

2 release files

4.0.2

2 release files

4.0.1

2 release files

4.0.0

2 release files

3.1.36

2 release files

3.1.35

2 release files

3.1.34

2 release files

3.1.33

2 release files

3.1.30

2 release files

3.1.29

2 release files

3.1.28

2 release files

3.1.27

2 release files

3.1.26

2 release files

3.1.25

2 release files

3.1.24

2 release files

3.1.21

2 release files

3.1.20

2 release files

3.1.19

2 release files

3.1.18

2 release files

3.1.17

2 release files

3.1.16

2 release files

3.1.15

2 release files

3.1.14

2 release files

3.1.13

2 release files

3.1.11

2 release files

3.1.10

2 release files

3.1.9

2 release files

3.1.8

2 release files

3.1.7

2 release files

3.1.6

2 release files

3.1.5

2 release files

3.1.4

2 release files

3.1.3

2 release files

3.1.2

2 release files

3.1.1

2 release files

3.1.0

2 release files

3.0.9

2 release files

3.0.8

2 release files

3.0.7

2 release files

3.0.6

2 release files

3.0.5

2 release files

2.1.45

2 release files

2.1.44

2 release files

2.1.43

2 release files

2.1.41

2 release files

2.1.37

2 release files

2.1.36

2 release files

2.1.34

2 release files

2.1.33

2 release files

2.1.32

2 release files

2.1.30

2 release files

2.1.28

2 release files

2.1.27

2 release files

2.1.26

2 release files

2.1.25

2 release files

2.1.24

2 release files

2.1.23

2 release files

2.1.22

2 release files

2.1.21

2 release files

2.1.20

2 release files

2.1.19

2 release files

2.1.17

2 release files

2.1.16

2 release files

2.1.15

2 release files

2.1.12

2 release files

2.1.11

2 release files

2.1.10

2 release files

2.1.9

2 release files

2.1.8

2 release files

2.1.7

2 release files

2.1.6

2 release files

2.1.5

2 release files

2.1.4

2 release files

2.1.3

2 release files

2.1.2

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.10

2 release files

2.0.9

2 release files

2.0.8

2 release files

2.0.7

2 release files

2.0.6

2 release files

2.0.5

2 release files

2.0.4

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

1.5.3

2 release files

1.5.2

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.11

2 release files

1.3.10

2 release files

1.3.9

2 release files

1.3.8

2 release files

1.3.7

2 release files

1.3.6

2 release files

1.3.5

2 release files

1.3.4

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.8

2 release files

1.2.7

2 release files

1.2.6

2 release files

1.2.5

2 release files

1.2.4

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.9

2 release files

1.1.8

2 release files

1.1.7

2 release files

1.1.6

2 release files

1.1.5

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.9.0

2 release files

0.8.5

2 release files

0.8.4

2 release files

0.8.3

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.13

2 release files

0.7.12

2 release files

0.7.11

2 release files

0.7.10

2 release files

0.7.9

2 release files

0.7.8

2 release files

0.7.7

2 release files

0.7.6

2 release files

0.7.5

2 release files

0.7.4

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.47

2 release files

0.6.46

2 release files

0.6.45

2 release files

0.6.44

2 release files

0.6.43

2 release files

0.6.42

2 release files

0.6.41

2 release files

0.6.40

2 release files

0.6.39

2 release files

0.6.38

2 release files

0.6.37

2 release files

0.6.36

2 release files

0.6.35

2 release files

0.6.34

2 release files

0.6.32

2 release files

0.6.28

2 release files

0.6.27

2 release files

0.6.25

2 release files

0.6.24

2 release files

0.6.23

2 release files

0.6.22

2 release files

0.6.21

2 release files

0.6.20

2 release files

0.6.19

2 release files

0.6.18

2 release files

0.6.17

2 release files

0.6.16

2 release files

0.6.15

2 release files

0.6.14

2 release files

0.6.13

2 release files

0.6.12

2 release files

0.6.11

2 release files

0.6.10

2 release files

0.6.9

2 release files

0.6.8

2 release files

0.6.7

2 release files

0.6.6

2 release files

0.6.5

2 release files

0.6.4

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.99

2 release files

0.5.98

2 release files

0.5.93

2 release files

0.5.92

2 release files

0.5.91

2 release files

0.5.90

2 release files

0.5.89

2 release files

0.5.88

2 release files

0.5.78

2 release files

0.5.77

2 release files

0.5.76

2 release files

0.5.75

2 release files

0.5.72

2 release files

0.5.71

2 release files

0.5.70

2 release files

0.5.69

2 release files

0.5.68

2 release files

0.5.67

2 release files

0.5.66

2 release files

0.5.65

2 release files

0.5.64

2 release files

0.5.63

2 release files

0.5.62

2 release files

0.5.61

2 release files

0.5.60

2 release files

0.5.59

2 release files

0.5.58

2 release files

0.5.57

2 release files

0.5.56

2 release files

0.5.55

2 release files

0.5.54

2 release files

0.5.53

2 release files

0.5.52

2 release files

0.5.51

2 release files

0.5.50

2 release files

0.5.49

2 release files

0.5.48

2 release files

0.5.47

2 release files

0.5.46

2 release files

0.5.45

2 release files

0.5.44

2 release files

0.5.43

2 release files

0.5.42

2 release files

0.5.41

2 release files

0.5.40

2 release files

0.5.39

2 release files

0.5.38

2 release files

0.5.33

2 release files

0.5.32

2 release files

0.5.31

2 release files

0.5.30

2 release files

0.5.29

2 release files

0.5.28

2 release files

0.5.27

2 release files

0.5.26

2 release files

0.5.25

2 release files

0.5.24

2 release files

0.5.23

2 release files

0.5.22

2 release files

0.5.17

2 release files

0.5.16

2 release files

0.5.15

2 release files

0.5.14

2 release files

0.4.1

1 release file

0.4

1 release file

0.3.0

1 release file

0.2.0

1 release 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