Skip to content

carson-katri/codable-db

Repository files navigation

CodableDB

A simple database using Codable.

  1. Declare your models
struct User: Codable, Equatable {
  let id: Int
  let username: String
  let first: String
  let last: String
}
  1. Create a Database
struct TestDB: Database {
  var users: [User]
  
  init(users: [User] = []) { self.users = users }
}
  1. Use a Store to read/write the data
// MemoryStore does not persist between app runs.
let store = MemoryStore(TestDB())
store.db.users // [User]

// FileStore keeps the data in a file (defaults to <documentDirectory>/<Database type name>.json)
let store = FileStore(TestDB())
store.db.users // [User]

You can also specify the file URL, decoder, and encoder of FileStore:

FileStore(
  TestDB(),
  file: URL("myFile.json"),
  decode: { try XMLDecoder().decode(TestDB.self, from: $0) },
  encode: XMLEncoder().encode
)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages