Repository files navigation

Valkey cache backend for Django

PypiPython versionsdocsdownloads/monthPublished on Django Packages

Introduction

django-valkey is a BSD licensed, full featured Valkey cache and session backend for Django.

this project is a fork of the wonderful django-redis project. they wrote all the good codes.

Why use django-valkey?

  • Valkey is a free licenced and well maintained key/value database
  • Uses native valkey-py url notation connection strings
  • async support
  • Pluggable clients
  • Pluggable parsers
  • Pluggable serializers
  • Primary/secondary support in the default client
  • Comprehensive test suite
  • Used in production in several projects as cache and session storage
  • Supports infinite timeouts
  • Facilities for raw access to Valkey client/connection pool
  • Highly configurable (can emulate memcached exception behavior, for example)
  • Unix sockets supported by default

Requirements

User guide

Documentation

check out our Docs for a complete explanation

Installation

Install with pip:

python -m pip install django-valkey

Install with c bindings:

python -m pip install django-valkey[libvalkey]

Install 3rd party compression

python -m pip install django-valkey[lz4]
python -m pip install django-valkey[zstd] # not needed since python 3.14
python -m pip install django-valkey[brotli]

Install with 3rd party serializers

python -m pip install django-valkey[msgpack]
python -m pip install django-valkey[msgspec]

Contribution

contribution rules are like other projects,being respectful and keeping the ethics. also make an issue before going through troubles of coding, someone might already be doing what you want to do.

Todo

  1. Fix the CI in cluster branch.
  2. Add cluster to documentations.

License

Copyright (v) 2024 Amirreza Sohrabi far
Copyright (c) 2011-2016 Andrey Antukh <niwi@niwi.nz>
Copyright (c) 2011 Sean Bleier
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS`` AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

About

a Valkey backend for django

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks"); } } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); } })(); (function(){ try { var __m = "github.com"; var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Valkey cache backend for Django

PypiPython versionsdocsdownloads/monthPublished on Django Packages

Introduction

django-valkey is a BSD licensed, full featured Valkey cache and session backend for Django.

this project is a fork of the wonderful django-redis project. they wrote all the good codes.

Why use django-valkey?

  • Valkey is a free licenced and well maintained key/value database
  • Uses native valkey-py url notation connection strings
  • async support
  • Pluggable clients
  • Pluggable parsers
  • Pluggable serializers
  • Primary/secondary support in the default client
  • Comprehensive test suite
  • Used in production in several projects as cache and session storage
  • Supports infinite timeouts
  • Facilities for raw access to Valkey client/connection pool
  • Highly configurable (can emulate memcached exception behavior, for example)
  • Unix sockets supported by default

Requirements

User guide

Documentation

check out our Docs for a complete explanation

Installation

Install with pip:

python -m pip install django-valkey

Install with c bindings:

python -m pip install django-valkey[libvalkey]

Install 3rd party compression

python -m pip install django-valkey[lz4]
python -m pip install django-valkey[zstd] # not needed since python 3.14
python -m pip install django-valkey[brotli]

Install with 3rd party serializers

python -m pip install django-valkey[msgpack]
python -m pip install django-valkey[msgspec]

Contribution

contribution rules are like other projects,being respectful and keeping the ethics. also make an issue before going through troubles of coding, someone might already be doing what you want to do.

Todo

  1. Fix the CI in cluster branch.
  2. Add cluster to documentations.

License

Copyright (v) 2024 Amirreza Sohrabi far
Copyright (c) 2011-2016 Andrey Antukh <niwi@niwi.nz>
Copyright (c) 2011 Sean Bleier
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS`` AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

About

a Valkey backend for django

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Valkey cache backend for Django

PypiPython versionsdocsdownloads/monthPublished on Django Packages

Introduction

django-valkey is a BSD licensed, full featured Valkey cache and session backend for Django.

this project is a fork of the wonderful django-redis project. they wrote all the good codes.

Why use django-valkey?

  • Valkey is a free licenced and well maintained key/value database
  • Uses native valkey-py url notation connection strings
  • async support
  • Pluggable clients
  • Pluggable parsers
  • Pluggable serializers
  • Primary/secondary support in the default client
  • Comprehensive test suite
  • Used in production in several projects as cache and session storage
  • Supports infinite timeouts
  • Facilities for raw access to Valkey client/connection pool
  • Highly configurable (can emulate memcached exception behavior, for example)
  • Unix sockets supported by default

Requirements

User guide

Documentation

check out our Docs for a complete explanation

Installation

Install with pip:

python -m pip install django-valkey

Install with c bindings:

python -m pip install django-valkey[libvalkey]

Install 3rd party compression

python -m pip install django-valkey[lz4]
python -m pip install django-valkey[zstd] # not needed since python 3.14
python -m pip install django-valkey[brotli]

Install with 3rd party serializers

python -m pip install django-valkey[msgpack]
python -m pip install django-valkey[msgspec]

Contribution

contribution rules are like other projects,being respectful and keeping the ethics. also make an issue before going through troubles of coding, someone might already be doing what you want to do.

Todo

  1. Fix the CI in cluster branch.
  2. Add cluster to documentations.

License

Copyright (v) 2024 Amirreza Sohrabi far
Copyright (c) 2011-2016 Andrey Antukh <niwi@niwi.nz>
Copyright (c) 2011 Sean Bleier
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS`` AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

About

a Valkey backend for django

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length \u003e 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Valkey cache backend for Django

PypiPython versionsdocsdownloads/monthPublished on Django Packages

Introduction

django-valkey is a BSD licensed, full featured Valkey cache and session backend for Django.

this project is a fork of the wonderful django-redis project. they wrote all the good codes.

Why use django-valkey?

  • Valkey is a free licenced and well maintained key/value database
  • Uses native valkey-py url notation connection strings
  • async support
  • Pluggable clients
  • Pluggable parsers
  • Pluggable serializers
  • Primary/secondary support in the default client
  • Comprehensive test suite
  • Used in production in several projects as cache and session storage
  • Supports infinite timeouts
  • Facilities for raw access to Valkey client/connection pool
  • Highly configurable (can emulate memcached exception behavior, for example)
  • Unix sockets supported by default

Requirements

User guide

Documentation

check out our Docs for a complete explanation

Installation

Install with pip:

python -m pip install django-valkey

Install with c bindings:

python -m pip install django-valkey[libvalkey]

Install 3rd party compression

python -m pip install django-valkey[lz4]
python -m pip install django-valkey[zstd] # not needed since python 3.14
python -m pip install django-valkey[brotli]

Install with 3rd party serializers

python -m pip install django-valkey[msgpack]
python -m pip install django-valkey[msgspec]

Contribution

contribution rules are like other projects,being respectful and keeping the ethics. also make an issue before going through troubles of coding, someone might already be doing what you want to do.

Todo

  1. Fix the CI in cluster branch.
  2. Add cluster to documentations.

License

Copyright (v) 2024 Amirreza Sohrabi far
Copyright (c) 2011-2016 Andrey Antukh <niwi@niwi.nz>
Copyright (c) 2011 Sean Bleier
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS`` AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

About

a Valkey backend for django

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Valkey cache backend for Django

PypiPython versionsdocsdownloads/monthPublished on Django Packages

Introduction

django-valkey is a BSD licensed, full featured Valkey cache and session backend for Django.

this project is a fork of the wonderful django-redis project. they wrote all the good codes.

Why use django-valkey?

  • Valkey is a free licenced and well maintained key/value database
  • Uses native valkey-py url notation connection strings
  • async support
  • Pluggable clients
  • Pluggable parsers
  • Pluggable serializers
  • Primary/secondary support in the default client
  • Comprehensive test suite
  • Used in production in several projects as cache and session storage
  • Supports infinite timeouts
  • Facilities for raw access to Valkey client/connection pool
  • Highly configurable (can emulate memcached exception behavior, for example)
  • Unix sockets supported by default

Requirements

User guide

Documentation

check out our Docs for a complete explanation

Installation

Install with pip:

python -m pip install django-valkey

Install with c bindings:

python -m pip install django-valkey[libvalkey]

Install 3rd party compression

python -m pip install django-valkey[lz4]
python -m pip install django-valkey[zstd] # not needed since python 3.14
python -m pip install django-valkey[brotli]

Install with 3rd party serializers

python -m pip install django-valkey[msgpack]
python -m pip install django-valkey[msgspec]

Contribution

contribution rules are like other projects,being respectful and keeping the ethics. also make an issue before going through troubles of coding, someone might already be doing what you want to do.

Todo

  1. Fix the CI in cluster branch.
  2. Add cluster to documentations.

License

Copyright (v) 2024 Amirreza Sohrabi far
Copyright (c) 2011-2016 Andrey Antukh <niwi@niwi.nz>
Copyright (c) 2011 Sean Bleier
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS`` AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

About

a Valkey backend for django

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Valkey cache backend for Django

PypiPython versionsdocsdownloads/monthPublished on Django Packages

Introduction

django-valkey is a BSD licensed, full featured Valkey cache and session backend for Django.

this project is a fork of the wonderful django-redis project. they wrote all the good codes.

Why use django-valkey?

  • Valkey is a free licenced and well maintained key/value database
  • Uses native valkey-py url notation connection strings
  • async support
  • Pluggable clients
  • Pluggable parsers
  • Pluggable serializers
  • Primary/secondary support in the default client
  • Comprehensive test suite
  • Used in production in several projects as cache and session storage
  • Supports infinite timeouts
  • Facilities for raw access to Valkey client/connection pool
  • Highly configurable (can emulate memcached exception behavior, for example)
  • Unix sockets supported by default

Requirements

User guide

Documentation

check out our Docs for a complete explanation

Installation

Install with pip:

python -m pip install django-valkey

Install with c bindings:

python -m pip install django-valkey[libvalkey]

Install 3rd party compression

python -m pip install django-valkey[lz4]
python -m pip install django-valkey[zstd] # not needed since python 3.14
python -m pip install django-valkey[brotli]

Install with 3rd party serializers

python -m pip install django-valkey[msgpack]
python -m pip install django-valkey[msgspec]

Contribution

contribution rules are like other projects,being respectful and keeping the ethics. also make an issue before going through troubles of coding, someone might already be doing what you want to do.

Todo

  1. Fix the CI in cluster branch.
  2. Add cluster to documentations.

License

Copyright (v) 2024 Amirreza Sohrabi far
Copyright (c) 2011-2016 Andrey Antukh <niwi@niwi.nz>
Copyright (c) 2011 Sean Bleier
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS`` AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

About

a Valkey backend for django

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Valkey cache backend for Django

PypiPython versionsdocsdownloads/monthPublished on Django Packages

Introduction

django-valkey is a BSD licensed, full featured Valkey cache and session backend for Django.

this project is a fork of the wonderful django-redis project. they wrote all the good codes.

Why use django-valkey?

  • Valkey is a free licenced and well maintained key/value database
  • Uses native valkey-py url notation connection strings
  • async support
  • Pluggable clients
  • Pluggable parsers
  • Pluggable serializers
  • Primary/secondary support in the default client
  • Comprehensive test suite
  • Used in production in several projects as cache and session storage
  • Supports infinite timeouts
  • Facilities for raw access to Valkey client/connection pool
  • Highly configurable (can emulate memcached exception behavior, for example)
  • Unix sockets supported by default

Requirements

User guide

Documentation

check out our Docs for a complete explanation

Installation

Install with pip:

python -m pip install django-valkey

Install with c bindings:

python -m pip install django-valkey[libvalkey]

Install 3rd party compression

python -m pip install django-valkey[lz4]
python -m pip install django-valkey[zstd] # not needed since python 3.14
python -m pip install django-valkey[brotli]

Install with 3rd party serializers

python -m pip install django-valkey[msgpack]
python -m pip install django-valkey[msgspec]

Contribution

contribution rules are like other projects,being respectful and keeping the ethics. also make an issue before going through troubles of coding, someone might already be doing what you want to do.

Todo

  1. Fix the CI in cluster branch.
  2. Add cluster to documentations.

License

Copyright (v) 2024 Amirreza Sohrabi far
Copyright (c) 2011-2016 Andrey Antukh <niwi@niwi.nz>
Copyright (c) 2011 Sean Bleier
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS`` AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

About

a Valkey backend for django

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Valkey cache backend for Django

PypiPython versionsdocsdownloads/monthPublished on Django Packages

Introduction

django-valkey is a BSD licensed, full featured Valkey cache and session backend for Django.

this project is a fork of the wonderful django-redis project. they wrote all the good codes.

Why use django-valkey?

  • Valkey is a free licenced and well maintained key/value database
  • Uses native valkey-py url notation connection strings
  • async support
  • Pluggable clients
  • Pluggable parsers
  • Pluggable serializers
  • Primary/secondary support in the default client
  • Comprehensive test suite
  • Used in production in several projects as cache and session storage
  • Supports infinite timeouts
  • Facilities for raw access to Valkey client/connection pool
  • Highly configurable (can emulate memcached exception behavior, for example)
  • Unix sockets supported by default

Requirements

User guide

Documentation

check out our Docs for a complete explanation

Installation

Install with pip:

python -m pip install django-valkey

Install with c bindings:

python -m pip install django-valkey[libvalkey]

Install 3rd party compression

python -m pip install django-valkey[lz4]
python -m pip install django-valkey[zstd] # not needed since python 3.14
python -m pip install django-valkey[brotli]

Install with 3rd party serializers

python -m pip install django-valkey[msgpack]
python -m pip install django-valkey[msgspec]

Contribution

contribution rules are like other projects,being respectful and keeping the ethics. also make an issue before going through troubles of coding, someone might already be doing what you want to do.

Todo

  1. Fix the CI in cluster branch.
  2. Add cluster to documentations.

License

Copyright (v) 2024 Amirreza Sohrabi far
Copyright (c) 2011-2016 Andrey Antukh <niwi@niwi.nz>
Copyright (c) 2011 Sean Bleier
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS`` AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

About

a Valkey backend for django

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages