yapstudios/YapDatabase
yapstudios/YapDatabase has 3,326 GitHub stars and 369 forks. GitHot measured 0 stars in 24 hours and 0 in 7 days. Last checked 2026-11-14 03:36 UTC. Last push 2022-09-07.
Progression mesurée des étoiles
- in 24h
- 0
- in 7 days
- 0
- in 15 days
- Historique en cours
- in 1 month
- Historique en cours
Variations nettes sur des périodes qui se chevauchent, pas des totaux quotidiens. Les mesures absentes restent vides. Les étoiles indiquent l’intérêt, pas la qualité.
À propos
YapDB is a collection/key/value store with a plugin architecture. It's built atop sqlite, for Swift & objective-c developers.
DonnéesREADME.md
OriginalYapDatabase is a collection/key/value store and so much more. It's built atop sqlite, for Swift & Objective-C developers, targeting macOS, iOS, tvOS & watchOS.
Hello World:
// Create and/or Open the database file
let db = YapDatabase()
// Configure database:
// We're going to store String's in the collection "test".
// To store custom classes/structs, just implement Swift's Codable protocol.
db.registerCodableSerialization(String.self, forCollection: "test")
// Get a connection to the database
// (You can have multiple connections for concurrency.)
let connection = db.newConnection()
// Write an item to the database
connection.readWrite {(transaction) in
transaction.setObject("hello", forKey: "world", inCollection: "test")
}
// Read it back
connection.read {(transaction) in
let str = transaction.object(forKey: "world", inCollection: "test") as? String
// str == "hello"
}
YapDB has the following features:
- Concurrency. You can read from the database while another thread is simultaneously making modifications to the database. So you never have to worry about blocking the main thread, and you can easily write to the database on a background thread. And, of course, you can read from the database on multiple threads simultaneously.
- Built-In Caching. A configurable object cache is built-in. Of course sqlite has caching too. But it's caching raw serialized bytes, and we're dealing with objects. So having a built-in cache means you can skip the deserialization process, and get your objects much faster.
- Metadata. Ever wanted to store extra data along with your object? Like maybe a timestamp of when it was downloaded. Or a fully separate but related object? You're in luck. Metadata support comes standard. Along with its own separate configurable cache too!
- Views. Need to filter, group & sort your data? No problem. YapDatabase comes with Views. And you don't even need to write esoteric SQL queries. Views work using closures, so you just provide a bit of native code. Plus they automatically update themselves, and they make animating tables super easy.
- Secondary Indexing. Speed up your queries by indexing important properties. And then use SQL style queries to quickly find your items.
- Full Text Search. Built atop sqlite's FTS module (contributed by google), you can add extremely speedy searching to your app with minimal effort.
- Relationships. You can setup relationships between objects and even configure cascading delete rules.
- Hooks. Perform custom app-specific logic when certain events take place, such as an object being modified or deleted.
- Sync. Support for syncing with Apple's CloudKit is available out of the box. There's even a fully functioning example project that demonstrates writing a syncing Todo app.
- Extensions. More than just a key/value store, YapDatabase comes with an extensions architecture built-in. You can even create your own extensions.
- Performance. Fetch thousands of objects on the main thread without dropping a frame.
See what the API looks like in "hello world" for YapDatabase
Learn more by visiting the wiki
Explorer des projets similaires
Asabeneh/30-Days-Of-Python
Le défi de programmation 30 Days of Python est un guide pas à pas pour apprendre le langage de programmation Python en 30 jours. Ce défi peut prendre plus de 100 jours. Avancez à votre rythme. Ces vidéos peuvent aussi vous aider : https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw
78,717 étoilesgrafana/grafana
Plateforme ouverte et composable d’observabilité et de visualisation de données. Visualise les métriques, les journaux et les traces issus de plusieurs sources, comme Prometheus, Loki, Elasticsearch, InfluxDB, Postgres et bien d’autres.
77,894 étoilesredis/redis
Pour les développeurs qui créent des applications en temps réel pilotées par les données, Redis est le cache, le serveur de structures de données et le moteur de requêtes documentaires et vectorielles préféré, le plus rapide et le plus riche en fonctionnalités.
77,491 étoilesapache/superset
Apache Superset est une plateforme de visualisation et d'exploration de données.
75,522 étoiles