Repository files navigation

CIRelease VersionGithub stargazers

ThingsDB Node

An Open-Source SSDI Solution for Scalable and Robust Data Management

ThingsDB is an open-source Stored-State-Distributed-Interpreter (SSDI) solution written in the C programming language. It offers a powerful and intuitive way to store, manage, and process data, making it an ideal choice for a wide range of applications.

Key Features:

  • Robustness: The state of the interpreter is always synchronized across nodes, ensuring data integrity and high availability even in the event of node failures.
  • Ease of Use: ThingsDB provides a simple and intuitive programming language that makes it easy to develop applications.
  • Versatility: ThingsDB can replace both SQL databases and message-broker solutions like RabbitMQ, simplifying application architecture.

Capabilities:

  • Create procedures: Define custom functions to execute complex logic within the database.
  • Define types: Specify data structures to represent your data accurately and efficiently.
  • Emit events: Trigger actions based on data changes and keep applications informed.
  • Create tasks: Schedule background jobs to perform asynchronous operations.
  • Extend with modules: Integrate with external resources and platforms using modular plugins.

Benefits:

  • Performance: ThingsDB is optimized for speed and efficiency, ensuring fast data processing and retrieval.
  • Flexibility: ThingsDB's adaptable architecture allows it to fit seamlessly into various application scenarios.
  • Cost-Effectiveness: As an open-source solution, ThingsDB eliminates licensing costs, making it a budget-friendly option.

Website

Want your own playground? Visit the website: https://thingsdb.io

Documentation

ThingsDB documentation: https://docs.thingsdb.io

Book

Learn ThingsDB: https://docs.thingsdb.io/v1/getting-started/book/

Installation

Docker

When using Docker, do not forget to mount a volume if you want ThingsDB to keep all changes.

For example:

docker run \
-d \
-p 9200:9200 \
-p 9210:9210 \
-p 9270:9270 \
-p 8080:8080 \
-v ~/thingsdb-data:/data \
-v ~/thingsdb-modules:/modules \
ghcr.io/thingsdb/node:latest \
--init

☝️ Note: The --init argument is technically only required when running ThingsDB for the first time.

Replace the latest tag or build your own Docker image if you want to test using Python modules or Google Cloud support (see the getting started page for more info)

Run integration tests

Docker is required to run the integration tests.

docker build -t thingsdb/itest -f itest/Dockerfile .
docker run thingsdb/itest:latest

Or, if you want all the output:

docker run \
-e THINGSDB_VERBOSE=1 \
-e THINGSDB_MEMCHECK=1 \
-e THINGSDB_LOGLEVEL=debug \
-e THINGSDB_NODE_OUTPUT=true \
thingsdb/itest:latest

About

Node - The ThingsDB Core

Resources

Code of conduct

Contributing

Stars

51 stars

Watchers

4 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 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

CIRelease VersionGithub stargazers

ThingsDB Node

An Open-Source SSDI Solution for Scalable and Robust Data Management

ThingsDB is an open-source Stored-State-Distributed-Interpreter (SSDI) solution written in the C programming language. It offers a powerful and intuitive way to store, manage, and process data, making it an ideal choice for a wide range of applications.

Key Features:

  • Robustness: The state of the interpreter is always synchronized across nodes, ensuring data integrity and high availability even in the event of node failures.
  • Ease of Use: ThingsDB provides a simple and intuitive programming language that makes it easy to develop applications.
  • Versatility: ThingsDB can replace both SQL databases and message-broker solutions like RabbitMQ, simplifying application architecture.

Capabilities:

  • Create procedures: Define custom functions to execute complex logic within the database.
  • Define types: Specify data structures to represent your data accurately and efficiently.
  • Emit events: Trigger actions based on data changes and keep applications informed.
  • Create tasks: Schedule background jobs to perform asynchronous operations.
  • Extend with modules: Integrate with external resources and platforms using modular plugins.

Benefits:

  • Performance: ThingsDB is optimized for speed and efficiency, ensuring fast data processing and retrieval.
  • Flexibility: ThingsDB's adaptable architecture allows it to fit seamlessly into various application scenarios.
  • Cost-Effectiveness: As an open-source solution, ThingsDB eliminates licensing costs, making it a budget-friendly option.

Website

Want your own playground? Visit the website: https://thingsdb.io

Documentation

ThingsDB documentation: https://docs.thingsdb.io

Book

Learn ThingsDB: https://docs.thingsdb.io/v1/getting-started/book/

Installation

Docker

When using Docker, do not forget to mount a volume if you want ThingsDB to keep all changes.

For example:

docker run \
-d \
-p 9200:9200 \
-p 9210:9210 \
-p 9270:9270 \
-p 8080:8080 \
-v ~/thingsdb-data:/data \
-v ~/thingsdb-modules:/modules \
ghcr.io/thingsdb/node:latest \
--init

☝️ Note: The --init argument is technically only required when running ThingsDB for the first time.

Replace the latest tag or build your own Docker image if you want to test using Python modules or Google Cloud support (see the getting started page for more info)

Run integration tests

Docker is required to run the integration tests.

docker build -t thingsdb/itest -f itest/Dockerfile .
docker run thingsdb/itest:latest

Or, if you want all the output:

docker run \
-e THINGSDB_VERBOSE=1 \
-e THINGSDB_MEMCHECK=1 \
-e THINGSDB_LOGLEVEL=debug \
-e THINGSDB_NODE_OUTPUT=true \
thingsdb/itest:latest

About

Node - The ThingsDB Core

Resources

Code of conduct

Contributing

Stars

51 stars

Watchers

4 watching

Forks

Releases

Sponsor this project

Packages

Used by

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

CIRelease VersionGithub stargazers

ThingsDB Node

An Open-Source SSDI Solution for Scalable and Robust Data Management

ThingsDB is an open-source Stored-State-Distributed-Interpreter (SSDI) solution written in the C programming language. It offers a powerful and intuitive way to store, manage, and process data, making it an ideal choice for a wide range of applications.

Key Features:

  • Robustness: The state of the interpreter is always synchronized across nodes, ensuring data integrity and high availability even in the event of node failures.
  • Ease of Use: ThingsDB provides a simple and intuitive programming language that makes it easy to develop applications.
  • Versatility: ThingsDB can replace both SQL databases and message-broker solutions like RabbitMQ, simplifying application architecture.

Capabilities:

  • Create procedures: Define custom functions to execute complex logic within the database.
  • Define types: Specify data structures to represent your data accurately and efficiently.
  • Emit events: Trigger actions based on data changes and keep applications informed.
  • Create tasks: Schedule background jobs to perform asynchronous operations.
  • Extend with modules: Integrate with external resources and platforms using modular plugins.

Benefits:

  • Performance: ThingsDB is optimized for speed and efficiency, ensuring fast data processing and retrieval.
  • Flexibility: ThingsDB's adaptable architecture allows it to fit seamlessly into various application scenarios.
  • Cost-Effectiveness: As an open-source solution, ThingsDB eliminates licensing costs, making it a budget-friendly option.

Website

Want your own playground? Visit the website: https://thingsdb.io

Documentation

ThingsDB documentation: https://docs.thingsdb.io

Book

Learn ThingsDB: https://docs.thingsdb.io/v1/getting-started/book/

Installation

Docker

When using Docker, do not forget to mount a volume if you want ThingsDB to keep all changes.

For example:

docker run \
-d \
-p 9200:9200 \
-p 9210:9210 \
-p 9270:9270 \
-p 8080:8080 \
-v ~/thingsdb-data:/data \
-v ~/thingsdb-modules:/modules \
ghcr.io/thingsdb/node:latest \
--init

☝️ Note: The --init argument is technically only required when running ThingsDB for the first time.

Replace the latest tag or build your own Docker image if you want to test using Python modules or Google Cloud support (see the getting started page for more info)

Run integration tests

Docker is required to run the integration tests.

docker build -t thingsdb/itest -f itest/Dockerfile .
docker run thingsdb/itest:latest

Or, if you want all the output:

docker run \
-e THINGSDB_VERBOSE=1 \
-e THINGSDB_MEMCHECK=1 \
-e THINGSDB_LOGLEVEL=debug \
-e THINGSDB_NODE_OUTPUT=true \
thingsdb/itest:latest

About

Node - The ThingsDB Core

Resources

Code of conduct

Contributing

Stars

51 stars

Watchers

4 watching

Forks

Releases

Sponsor this project

Packages

Used by

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

CIRelease VersionGithub stargazers

ThingsDB Node

An Open-Source SSDI Solution for Scalable and Robust Data Management

ThingsDB is an open-source Stored-State-Distributed-Interpreter (SSDI) solution written in the C programming language. It offers a powerful and intuitive way to store, manage, and process data, making it an ideal choice for a wide range of applications.

Key Features:

  • Robustness: The state of the interpreter is always synchronized across nodes, ensuring data integrity and high availability even in the event of node failures.
  • Ease of Use: ThingsDB provides a simple and intuitive programming language that makes it easy to develop applications.
  • Versatility: ThingsDB can replace both SQL databases and message-broker solutions like RabbitMQ, simplifying application architecture.

Capabilities:

  • Create procedures: Define custom functions to execute complex logic within the database.
  • Define types: Specify data structures to represent your data accurately and efficiently.
  • Emit events: Trigger actions based on data changes and keep applications informed.
  • Create tasks: Schedule background jobs to perform asynchronous operations.
  • Extend with modules: Integrate with external resources and platforms using modular plugins.

Benefits:

  • Performance: ThingsDB is optimized for speed and efficiency, ensuring fast data processing and retrieval.
  • Flexibility: ThingsDB's adaptable architecture allows it to fit seamlessly into various application scenarios.
  • Cost-Effectiveness: As an open-source solution, ThingsDB eliminates licensing costs, making it a budget-friendly option.

Website

Want your own playground? Visit the website: https://thingsdb.io

Documentation

ThingsDB documentation: https://docs.thingsdb.io

Book

Learn ThingsDB: https://docs.thingsdb.io/v1/getting-started/book/

Installation

Docker

When using Docker, do not forget to mount a volume if you want ThingsDB to keep all changes.

For example:

docker run \
-d \
-p 9200:9200 \
-p 9210:9210 \
-p 9270:9270 \
-p 8080:8080 \
-v ~/thingsdb-data:/data \
-v ~/thingsdb-modules:/modules \
ghcr.io/thingsdb/node:latest \
--init

☝️ Note: The --init argument is technically only required when running ThingsDB for the first time.

Replace the latest tag or build your own Docker image if you want to test using Python modules or Google Cloud support (see the getting started page for more info)

Run integration tests

Docker is required to run the integration tests.

docker build -t thingsdb/itest -f itest/Dockerfile .
docker run thingsdb/itest:latest

Or, if you want all the output:

docker run \
-e THINGSDB_VERBOSE=1 \
-e THINGSDB_MEMCHECK=1 \
-e THINGSDB_LOGLEVEL=debug \
-e THINGSDB_NODE_OUTPUT=true \
thingsdb/itest:latest

About

Node - The ThingsDB Core

Resources

Code of conduct

Contributing

Stars

51 stars

Watchers

4 watching

Forks

Releases

Sponsor this project

Packages

Used by

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

CIRelease VersionGithub stargazers

ThingsDB Node

An Open-Source SSDI Solution for Scalable and Robust Data Management

ThingsDB is an open-source Stored-State-Distributed-Interpreter (SSDI) solution written in the C programming language. It offers a powerful and intuitive way to store, manage, and process data, making it an ideal choice for a wide range of applications.

Key Features:

  • Robustness: The state of the interpreter is always synchronized across nodes, ensuring data integrity and high availability even in the event of node failures.
  • Ease of Use: ThingsDB provides a simple and intuitive programming language that makes it easy to develop applications.
  • Versatility: ThingsDB can replace both SQL databases and message-broker solutions like RabbitMQ, simplifying application architecture.

Capabilities:

  • Create procedures: Define custom functions to execute complex logic within the database.
  • Define types: Specify data structures to represent your data accurately and efficiently.
  • Emit events: Trigger actions based on data changes and keep applications informed.
  • Create tasks: Schedule background jobs to perform asynchronous operations.
  • Extend with modules: Integrate with external resources and platforms using modular plugins.

Benefits:

  • Performance: ThingsDB is optimized for speed and efficiency, ensuring fast data processing and retrieval.
  • Flexibility: ThingsDB's adaptable architecture allows it to fit seamlessly into various application scenarios.
  • Cost-Effectiveness: As an open-source solution, ThingsDB eliminates licensing costs, making it a budget-friendly option.

Website

Want your own playground? Visit the website: https://thingsdb.io

Documentation

ThingsDB documentation: https://docs.thingsdb.io

Book

Learn ThingsDB: https://docs.thingsdb.io/v1/getting-started/book/

Installation

Docker

When using Docker, do not forget to mount a volume if you want ThingsDB to keep all changes.

For example:

docker run \
-d \
-p 9200:9200 \
-p 9210:9210 \
-p 9270:9270 \
-p 8080:8080 \
-v ~/thingsdb-data:/data \
-v ~/thingsdb-modules:/modules \
ghcr.io/thingsdb/node:latest \
--init

☝️ Note: The --init argument is technically only required when running ThingsDB for the first time.

Replace the latest tag or build your own Docker image if you want to test using Python modules or Google Cloud support (see the getting started page for more info)

Run integration tests

Docker is required to run the integration tests.

docker build -t thingsdb/itest -f itest/Dockerfile .
docker run thingsdb/itest:latest

Or, if you want all the output:

docker run \
-e THINGSDB_VERBOSE=1 \
-e THINGSDB_MEMCHECK=1 \
-e THINGSDB_LOGLEVEL=debug \
-e THINGSDB_NODE_OUTPUT=true \
thingsdb/itest:latest

About

Node - The ThingsDB Core

Resources

Code of conduct

Contributing

Stars

51 stars

Watchers

4 watching

Forks

Releases

Sponsor this project

Packages

Used by

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

CIRelease VersionGithub stargazers

ThingsDB Node

An Open-Source SSDI Solution for Scalable and Robust Data Management

ThingsDB is an open-source Stored-State-Distributed-Interpreter (SSDI) solution written in the C programming language. It offers a powerful and intuitive way to store, manage, and process data, making it an ideal choice for a wide range of applications.

Key Features:

  • Robustness: The state of the interpreter is always synchronized across nodes, ensuring data integrity and high availability even in the event of node failures.
  • Ease of Use: ThingsDB provides a simple and intuitive programming language that makes it easy to develop applications.
  • Versatility: ThingsDB can replace both SQL databases and message-broker solutions like RabbitMQ, simplifying application architecture.

Capabilities:

  • Create procedures: Define custom functions to execute complex logic within the database.
  • Define types: Specify data structures to represent your data accurately and efficiently.
  • Emit events: Trigger actions based on data changes and keep applications informed.
  • Create tasks: Schedule background jobs to perform asynchronous operations.
  • Extend with modules: Integrate with external resources and platforms using modular plugins.

Benefits:

  • Performance: ThingsDB is optimized for speed and efficiency, ensuring fast data processing and retrieval.
  • Flexibility: ThingsDB's adaptable architecture allows it to fit seamlessly into various application scenarios.
  • Cost-Effectiveness: As an open-source solution, ThingsDB eliminates licensing costs, making it a budget-friendly option.

Website

Want your own playground? Visit the website: https://thingsdb.io

Documentation

ThingsDB documentation: https://docs.thingsdb.io

Book

Learn ThingsDB: https://docs.thingsdb.io/v1/getting-started/book/

Installation

Docker

When using Docker, do not forget to mount a volume if you want ThingsDB to keep all changes.

For example:

docker run \
-d \
-p 9200:9200 \
-p 9210:9210 \
-p 9270:9270 \
-p 8080:8080 \
-v ~/thingsdb-data:/data \
-v ~/thingsdb-modules:/modules \
ghcr.io/thingsdb/node:latest \
--init

☝️ Note: The --init argument is technically only required when running ThingsDB for the first time.

Replace the latest tag or build your own Docker image if you want to test using Python modules or Google Cloud support (see the getting started page for more info)

Run integration tests

Docker is required to run the integration tests.

docker build -t thingsdb/itest -f itest/Dockerfile .
docker run thingsdb/itest:latest

Or, if you want all the output:

docker run \
-e THINGSDB_VERBOSE=1 \
-e THINGSDB_MEMCHECK=1 \
-e THINGSDB_LOGLEVEL=debug \
-e THINGSDB_NODE_OUTPUT=true \
thingsdb/itest:latest

About

Node - The ThingsDB Core

Resources

Code of conduct

Contributing

Stars

51 stars

Watchers

4 watching

Forks

Releases

Sponsor this project

Packages

Used by

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

CIRelease VersionGithub stargazers

ThingsDB Node

An Open-Source SSDI Solution for Scalable and Robust Data Management

ThingsDB is an open-source Stored-State-Distributed-Interpreter (SSDI) solution written in the C programming language. It offers a powerful and intuitive way to store, manage, and process data, making it an ideal choice for a wide range of applications.

Key Features:

  • Robustness: The state of the interpreter is always synchronized across nodes, ensuring data integrity and high availability even in the event of node failures.
  • Ease of Use: ThingsDB provides a simple and intuitive programming language that makes it easy to develop applications.
  • Versatility: ThingsDB can replace both SQL databases and message-broker solutions like RabbitMQ, simplifying application architecture.

Capabilities:

  • Create procedures: Define custom functions to execute complex logic within the database.
  • Define types: Specify data structures to represent your data accurately and efficiently.
  • Emit events: Trigger actions based on data changes and keep applications informed.
  • Create tasks: Schedule background jobs to perform asynchronous operations.
  • Extend with modules: Integrate with external resources and platforms using modular plugins.

Benefits:

  • Performance: ThingsDB is optimized for speed and efficiency, ensuring fast data processing and retrieval.
  • Flexibility: ThingsDB's adaptable architecture allows it to fit seamlessly into various application scenarios.
  • Cost-Effectiveness: As an open-source solution, ThingsDB eliminates licensing costs, making it a budget-friendly option.

Website

Want your own playground? Visit the website: https://thingsdb.io

Documentation

ThingsDB documentation: https://docs.thingsdb.io

Book

Learn ThingsDB: https://docs.thingsdb.io/v1/getting-started/book/

Installation

Docker

When using Docker, do not forget to mount a volume if you want ThingsDB to keep all changes.

For example:

docker run \
-d \
-p 9200:9200 \
-p 9210:9210 \
-p 9270:9270 \
-p 8080:8080 \
-v ~/thingsdb-data:/data \
-v ~/thingsdb-modules:/modules \
ghcr.io/thingsdb/node:latest \
--init

☝️ Note: The --init argument is technically only required when running ThingsDB for the first time.

Replace the latest tag or build your own Docker image if you want to test using Python modules or Google Cloud support (see the getting started page for more info)

Run integration tests

Docker is required to run the integration tests.

docker build -t thingsdb/itest -f itest/Dockerfile .
docker run thingsdb/itest:latest

Or, if you want all the output:

docker run \
-e THINGSDB_VERBOSE=1 \
-e THINGSDB_MEMCHECK=1 \
-e THINGSDB_LOGLEVEL=debug \
-e THINGSDB_NODE_OUTPUT=true \
thingsdb/itest:latest

About

Node - The ThingsDB Core

Resources

Code of conduct

Contributing

Stars

51 stars

Watchers

4 watching

Forks

Releases

Sponsor this project

Packages

Used by

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

CIRelease VersionGithub stargazers

ThingsDB Node

An Open-Source SSDI Solution for Scalable and Robust Data Management

ThingsDB is an open-source Stored-State-Distributed-Interpreter (SSDI) solution written in the C programming language. It offers a powerful and intuitive way to store, manage, and process data, making it an ideal choice for a wide range of applications.

Key Features:

  • Robustness: The state of the interpreter is always synchronized across nodes, ensuring data integrity and high availability even in the event of node failures.
  • Ease of Use: ThingsDB provides a simple and intuitive programming language that makes it easy to develop applications.
  • Versatility: ThingsDB can replace both SQL databases and message-broker solutions like RabbitMQ, simplifying application architecture.

Capabilities:

  • Create procedures: Define custom functions to execute complex logic within the database.
  • Define types: Specify data structures to represent your data accurately and efficiently.
  • Emit events: Trigger actions based on data changes and keep applications informed.
  • Create tasks: Schedule background jobs to perform asynchronous operations.
  • Extend with modules: Integrate with external resources and platforms using modular plugins.

Benefits:

  • Performance: ThingsDB is optimized for speed and efficiency, ensuring fast data processing and retrieval.
  • Flexibility: ThingsDB's adaptable architecture allows it to fit seamlessly into various application scenarios.
  • Cost-Effectiveness: As an open-source solution, ThingsDB eliminates licensing costs, making it a budget-friendly option.

Website

Want your own playground? Visit the website: https://thingsdb.io

Documentation

ThingsDB documentation: https://docs.thingsdb.io

Book

Learn ThingsDB: https://docs.thingsdb.io/v1/getting-started/book/

Installation

Docker

When using Docker, do not forget to mount a volume if you want ThingsDB to keep all changes.

For example:

docker run \
-d \
-p 9200:9200 \
-p 9210:9210 \
-p 9270:9270 \
-p 8080:8080 \
-v ~/thingsdb-data:/data \
-v ~/thingsdb-modules:/modules \
ghcr.io/thingsdb/node:latest \
--init

☝️ Note: The --init argument is technically only required when running ThingsDB for the first time.

Replace the latest tag or build your own Docker image if you want to test using Python modules or Google Cloud support (see the getting started page for more info)

Run integration tests

Docker is required to run the integration tests.

docker build -t thingsdb/itest -f itest/Dockerfile .
docker run thingsdb/itest:latest

Or, if you want all the output:

docker run \
-e THINGSDB_VERBOSE=1 \
-e THINGSDB_MEMCHECK=1 \
-e THINGSDB_LOGLEVEL=debug \
-e THINGSDB_NODE_OUTPUT=true \
thingsdb/itest:latest

About

Node - The ThingsDB Core

Resources

Code of conduct

Contributing

Stars

51 stars

Watchers

4 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages