{"id":18780279,"url":"https://github.com/reactivemarbles/cachedatabase","last_synced_at":"2025-04-13T11:30:47.632Z","repository":{"id":37889861,"uuid":"394199558","full_name":"reactivemarbles/CacheDatabase","owner":"reactivemarbles","description":"A reimplementation of Akavache using the SQLite framework by Frank Krueger.","archived":false,"fork":false,"pushed_at":"2025-04-09T12:24:24.000Z","size":267,"stargazers_count":10,"open_issues_count":11,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-11T01:19:20.959Z","etag":null,"topics":["sqlite","sqlite3"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/reactivemarbles.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"reactivemarbles"}},"created_at":"2021-08-09T07:49:10.000Z","updated_at":"2025-03-26T21:40:55.000Z","dependencies_parsed_at":"2023-02-09T04:21:35.717Z","dependency_job_id":"f26598c1-5b35-4b55-81f2-38cd84e7d5a2","html_url":"https://github.com/reactivemarbles/CacheDatabase","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reactivemarbles%2FCacheDatabase","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reactivemarbles%2FCacheDatabase/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reactivemarbles%2FCacheDatabase/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reactivemarbles%2FCacheDatabase/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/reactivemarbles","download_url":"https://codeload.github.com/reactivemarbles/CacheDatabase/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248705501,"owners_count":21148548,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["sqlite","sqlite3"],"created_at":"2024-11-07T20:25:37.162Z","updated_at":"2025-04-13T11:30:47.016Z","avatar_url":"https://github.com/reactivemarbles.png","language":"C#","readme":"![License](https://img.shields.io/github/license/ReactiveMarbles/CacheDatabase.svg) [![Build](https://github.com/reactivemarbles/CacheDatabase/actions/workflows/ci-build.yml/badge.svg)](https://github.com/reactivemarbles/CacheDatabase/actions/workflows/ci-build.yml)\n\n# CacheDatabase\n\nA reimplementation of [Akavache](https://github.com/reactiveui/akavache) using the SQLite framework by [Frank Krueger](https://github.com/praeclarum/sqlite-net).\n\nReactiveMarbles.CacheDatabase.EncryptedSqlite3\n![Nuget](https://img.shields.io/nuget/dt/ReactiveMarbles.CacheDatabase.EncryptedSqlite3?color=pink\u0026style=plastic) [![NuGet](https://img.shields.io/nuget/v/ReactiveMarbles.CacheDatabase.EncryptedSqlite3.svg?style=plastic)](https://www.nuget.org/packages/ReactiveMarbles.CacheDatabase.EncryptedSqlite3)\n\nReactiveMarbles.CacheDatabase.Sqlite3\n![Nuget](https://img.shields.io/nuget/dt/ReactiveMarbles.CacheDatabase.Sqlite3?color=pink\u0026style=plastic) [![NuGet](https://img.shields.io/nuget/v/ReactiveMarbles.CacheDatabase.Sqlite3.svg?style=plastic)](https://www.nuget.org/packages/ReactiveMarbles.CacheDatabase.Sqlite3)\n\n# CacheDatabase.Settings\n\nA settings database for use with installable applications to provide persistent settings which are located one level down from the application folder making updates less painfull.\n\n## Example Application settings code\n```c#\npublic class ViewSettings : SettingsBase\n{\n    /// \u003csummary\u003e\n    /// Initializes a new instance of the \u003csee cref=\"ViewSettings\"/\u003e class.\n    /// \u003c/summary\u003e\n    public ViewSettings()\n        : base(nameof(ViewSettings))\n    {\n    }\n\n    /// \u003csummary\u003e\n    /// Gets or sets a value indicating whether [bool test].\n    /// \u003c/summary\u003e\n    /// \u003cvalue\u003e\n    ///   \u003cc\u003etrue\u003c/c\u003e if [bool test]; otherwise, \u003cc\u003efalse\u003c/c\u003e.\n    /// \u003c/value\u003e\n    public bool BoolTest\n    {\n        get =\u003e GetOrCreate(true); set =\u003e SetOrCreate(value);\n    }\n\n    /// \u003csummary\u003e\n    /// Gets or sets the byte test.\n    /// \u003c/summary\u003e\n    /// \u003cvalue\u003e\n    /// The byte test.\n    /// \u003c/value\u003e\n    public byte ByteTest\n    {\n        get =\u003e GetOrCreate((byte)123); set =\u003e SetOrCreate(value);\n    }\n\n    /// \u003csummary\u003e\n    /// Gets or sets the short test.\n    /// \u003c/summary\u003e\n    /// \u003cvalue\u003e\n    /// The short test.\n    /// \u003c/value\u003e\n    public short ShortTest\n    {\n        get =\u003e GetOrCreate((short)16); set =\u003e SetOrCreate(value);\n    }\n\n    /// \u003csummary\u003e\n    /// Gets or sets the int test.\n    /// \u003c/summary\u003e\n    /// \u003cvalue\u003e\n    /// The int test.\n    /// \u003c/value\u003e\n    public int IntTest\n    {\n        get =\u003e GetOrCreate(1); set =\u003e SetOrCreate(value);\n    }\n\n    /// \u003csummary\u003e\n    /// Gets or sets the long test.\n    /// \u003c/summary\u003e\n    /// \u003cvalue\u003e\n    /// The long test.\n    /// \u003c/value\u003e\n    public long LongTest\n    {\n        get =\u003e GetOrCreate(123456); set =\u003e SetOrCreate(value);\n    }\n\n    /// \u003csummary\u003e\n    /// Gets or sets the string test.\n    /// \u003c/summary\u003e\n    /// \u003cvalue\u003e\n    /// The string test.\n    /// \u003c/value\u003e\n    public string? StringTest\n    {\n        get =\u003e GetOrCreate(\"TestString\"); set =\u003e SetOrCreate(value);\n    }\n\n    /// \u003csummary\u003e\n    /// Gets or sets the float test.\n    /// \u003c/summary\u003e\n    /// \u003cvalue\u003e\n    /// The float test.\n    /// \u003c/value\u003e\n    public float FloatTest\n    {\n        get =\u003e GetOrCreate(2.2f); set =\u003e SetOrCreate(value);\n    }\n\n    /// \u003csummary\u003e\n    /// Gets or sets the double test.\n    /// \u003c/summary\u003e\n    /// \u003cvalue\u003e\n    /// The double test.\n    /// \u003c/value\u003e\n    public double DoubleTest\n    {\n        get =\u003e GetOrCreate(23.8d); set =\u003e SetOrCreate(value);\n    }\n\n    /// \u003csummary\u003e\n    /// Gets or sets the enum test.\n    /// \u003c/summary\u003e\n    /// \u003cvalue\u003e\n    /// The enum test.\n    /// \u003c/value\u003e\n    public EnumTestValue EnumTest\n    {\n        get =\u003e GetOrCreate(EnumTestValue.Option1); set =\u003e SetOrCreate(value);\n    }\n}\n```\n\n## OPTIONAL: Override Settings Cache Path\n\n```c#\nAppInfo.OverrideSettingsCachePath(path);\n```\n\n## Create an instance or get existing Settings SettingsCache\n\nInstall ReactiveMarbles.CacheDatabase.Settings\n![Nuget](https://img.shields.io/nuget/dt/ReactiveMarbles.CacheDatabase.Settings?color=pink\u0026style=plastic) [![NuGet](https://img.shields.io/nuget/v/ReactiveMarbles.CacheDatabase.Settings.svg?style=plastic)](https://www.nuget.org/packages/ReactiveMarbles.CacheDatabase.Settings)\n\n```c#\nvar viewSettings = await AppInfo.SetupSettingsStore\u003cViewSettings\u003e();\n```\n## To Create an instance or get existing EncryptedSettings SettingsCache\n\nInstall ReactiveMarbles.CacheDatabase.EncryptedSettings\n![Nuget](https://img.shields.io/nuget/dt/ReactiveMarbles.CacheDatabase.EncryptedSettings?color=pink\u0026style=plastic) [![NuGet](https://img.shields.io/nuget/v/ReactiveMarbles.CacheDatabase.EncryptedSettings.svg?style=plastic)](https://www.nuget.org/packages/ReactiveMarbles.CacheDatabase.EncryptedSettings)\n```c#\nvar viewSettings = await AppInfo.SetupSettingsStore\u003cViewSettings\u003e(\"SECURE_PASSWORD\");\n```\n## To Delete the instance of the SettingsCache\n```c#\nawait AppInfo.DeleteSettingsStore\u003cViewSettings\u003e();\n```\n## To Close the SettingsCache upon application exit\n```c#\nawait AppInfo.DisposeSettingsStore\u003cViewSettings\u003e();\n```\n\nMultiple SettingsCache's can be created, each SettingsCache will have a SettingsCache database created with the name of the SettingsCache class.","funding_links":["https://github.com/sponsors/reactivemarbles"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freactivemarbles%2Fcachedatabase","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freactivemarbles%2Fcachedatabase","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freactivemarbles%2Fcachedatabase/lists"}