awesome-repositories.com
Blog
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
sindresorhus avatar

sindresorhus/electron-store

0
View on GitHub↗
4,999 stars·167 forks·JavaScript·MIT·2 views

Electron Store

electron-store is a persistence layer and key-value storage solution for Electron applications. It manages user preferences and application state by saving and retrieving structured data as JSON files on the local file system.

The library includes capabilities for obfuscating configuration files to prevent manual modification of saved data. It also provides a system for automatic data structure migration when the application version is incremented and supports custom serialization pipelines to replace standard JSON parsing.

The project covers a broad surface of state management, including schema validation to prevent data corruption, observer-based change tracking for synchronization, and the definition of fallback default settings. It also includes utilities for managing individual store items and opening raw storage files in external system editors.

Features

  • JSON-Based Persistence - Persists application state as structured JSON files on the local filesystem.
  • Local Persistence - Provides a persistence layer that saves application state and user preferences as JSON files on the local file system.
  • User Preference Management - Implements a system for storing, retrieving, and updating user-specific application settings and preferences.
  • Application Key-Value Stores - Offers a key-value storage solution for persisting application-specific state across sessions.
  • Local Configuration Storage - Maintains user settings and application state in local files to preserve the environment across restarts.
  • Item Management - Provides capabilities to retrieve, update, and manage individual or group items within persistent storage.
  • Local Storage Persistence - Maintains application state and user preferences using local file persistence in Electron environments.
  • Data Persistence Utilities - Provides a persistence layer specifically for saving and retrieving application state in Electron apps.
  • Configuration Managers - Provides a comprehensive manager for JSON settings with built-in schema validation, default values, and data migration.
  • Data Change Callbacks - Executes callback functions in response to updates of specific keys within the persistent store.
  • Obfuscated - Implements file obfuscation to prevent unauthorized manual modification of the application's local configuration data.
  • Encrypted Storage Layers - Includes an encryption layer to secure local storage files and prevent unauthorized manual modifications.
  • State Version Migrations - Automatically updates persisted state structures to match newer application versions via transformation functions.
  • Application Default Settings - Supports defining initial fallback values to ensure application stability when no user preferences exist.
  • Configuration File Obfuscation - Provides capabilities to obfuscate configuration files to prevent manual modification of saved data.
  • Obfuscated Configuration Files - Provides the ability to obfuscate configuration files on disk to prevent users from manually editing application settings.
  • Data Schema Validation - Verifies that stored values match a predefined schema to prevent data corruption.
  • Data Validation Schemas - Enforces type safety and data consistency by validating stored data against defined schemas.
  • Default Configuration Values - Allows the definition of fallback settings to ensure functionality when no user preferences are present.
  • State Change Observers - Triggers registered callbacks when specific keys in the stored state are modified.
  • Development Tools - Persist user preferences and application state.

Star history

Star history chart for sindresorhus/electron-storeStar history chart for sindresorhus/electron-store

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does sindresorhus/electron-store do?

electron-store is a persistence layer and key-value storage solution for Electron applications. It manages user preferences and application state by saving and retrieving structured data as JSON files on the local file system.

What are the main features of sindresorhus/electron-store?

The main features of sindresorhus/electron-store are: JSON-Based Persistence, Local Persistence, User Preference Management, Application Key-Value Stores, Local Configuration Storage, Item Management, Local Storage Persistence, Data Persistence Utilities.

What are some open-source alternatives to sindresorhus/electron-store?

Open-source alternatives to sindresorhus/electron-store include: day8/re-frame — re-frame is a functional framework for building single-page applications in ClojureScript. It provides a centralized,… ajv-validator/ajv — Ajv is a high-performance data validation framework that compiles JSON schemas into optimized, standalone JavaScript… pubkey/rxdb — This project is a reactive, offline-first NoSQL database engine designed for JavaScript applications. It provides a… electron-userland/electron-json-storage — Electron JSON Storage is a utility for persisting and retrieving JavaScript objects as JSON files on the local… msiemens/tinydb — TinyDB is a lightweight, document-oriented database and embedded NoSQL engine. It stores data as documents in local… sideway/joi — Joi is a JavaScript data validation library used to define schemas that ensure the structure and data types of objects…

Open-source alternatives to Electron Store

Similar open-source projects, ranked by how many features they share with Electron Store.
  • day8/re-frameday8 avatar

    day8/re-frame

    5,532View on GitHub↗

    re-frame is a functional framework for building single-page applications in ClojureScript. It provides a centralized, immutable database that serves as the single source of truth for the entire application state, enforcing a strict unidirectional data flow where events trigger state transitions and subsequent view updates. The framework distinguishes itself through a reactive signal graph and an interceptor-based middleware pipeline. By treating application logic as a sequence of data-driven events and declarative side effects, it decouples business logic from the view layer. This architectur

    Clojureclojurescriptre-framereact
    View on GitHub↗5,532
  • ajv-validator/ajvajv-validator avatar

    ajv-validator/ajv

    14,733View on GitHub↗

    Ajv is a high-performance data validation framework that compiles JSON schemas into optimized, standalone JavaScript functions. By transforming declarative schema definitions into executable code, it eliminates runtime interpretation overhead and provides a secure, efficient way to enforce data integrity across both browser and server environments. The library distinguishes itself through its focus on performance and type safety. It employs advanced compilation techniques, including abstract syntax tree optimization and function caching, to ensure rapid validation. Beyond standard checks, it

    TypeScriptajvjson-schemavalidator
    View on GitHub↗14,733
  • pubkey/rxdbpubkey avatar

    pubkey/rxdb

    23,048View on GitHub↗

    This project is a reactive, offline-first NoSQL database engine designed for JavaScript applications. It provides a robust framework for managing application state by synchronizing data across browsers, mobile devices, and server-side runtimes. By treating local storage as the primary source of truth, it enables applications to remain functional without network connectivity, automatically reconciling changes with remote backends once a connection is restored. The database distinguishes itself through a modular architecture that supports cross-environment synchronization and high-performance d

    TypeScriptangularbrowser-databasecouchdb
    View on GitHub↗23,048
  • electron-userland/electron-json-storageelectron-userland avatar

    electron-userland/electron-json-storage

    1,427View on GitHub↗

    Electron JSON Storage is a utility for persisting and retrieving JavaScript objects as JSON files on the local filesystem within desktop applications. It functions as a wrapper for managing local configuration files, allowing developers to save and retrieve user preferences and application settings to maintain state across multiple sessions. The library distinguishes itself by providing both asynchronous non-blocking operations and synchronous fallback methods for data access. It manages data through key-value mapping, where unique string identifiers are translated into specific file paths, a

    JavaScriptelectronjsonsettings
    View on GitHub↗1,427
See all 30 alternatives to Electron Store→