Easy direct access to your database 🎯

Overview

OHMySQL

License License Documentation

★★ Every star is appreciated! ★★

The library supports Objective-C and Swift, iOS and macOS. You can connect to your remote MySQL database using OHMySQL API. It allows you doing queries in easy and object-oriented way. Common queries such as SELECT, INSERT, DELETE, JOIN are wrapped by Objective-C code and you don't need to dive into MySQL C API.

Goal

If you are interested in and want to know how it can be applied in your project too.

Features

  • Easy to integrate and use
  • Many functionality features
  • Requires minimal knowledge in SQL
  • Supports iOS and macOS
  • Clean code with unit tests
  • Complete documentation and support

Requirements

  • iOS 8.0+ / macOS 10.9+
  • Xcode 8.1+

How To Get Started

Installation

You can use CocoaPods. Add the following line to your Podfile:

pod 'OHMySQL'

If you are using Swift do not forget to add use_frameworks! at the top of Podfile. Add platform, example platform :osx, '10.10'.

Usage

At the first you need to connect to the database.

Objective-C version:

OHMySQLUser *user = [[OHMySQLUser alloc] initWithUserName:@"root"
					 	 password:@"root"
					       serverName:@"localhost"
						   dbName:@"sample"
						     port:3306
						   socket:@"/Applications/MAMP/tmp/mysql/mysql.sock"];
OHMySQLStoreCoordinator *coordinator = [[OHMySQLStoreCoordinator alloc] initWithUser:user];
[coordinator connect];

Swift version:

let user = OHMySQLUser(userName: "root", password: "root", serverName: "localhost", dbName: "ohmysql", port: 3306, socket: "/Applications/MAMP/tmp/mysql/mysql.sock")
let coordinator = OHMySQLStoreCoordinator(user: user!)
coordinator.encoding = .UTF8MB4
coordinator.connect()

To end a connection:

[coordinator disconnect];
coordinator.disconnect()

Query Context

To execute a query you have to create the context:

OHMySQLQueryContext *queryContext = [OHMySQLQueryContext new];
queryContext.storeCoordinator = coordinator;
let context = OHMySQLQueryContext()
context.storeCoordinator = coordinator

You will use this context to execute queries or manipulate the objects.

SELECT

The response contains array of dictionaries (like JSON).

OHMySQLQueryRequest *query = [OHMySQLQueryRequestFactory SELECT:@"tasks" condition:nil];
NSError *error = nil;
NSArray *tasks = [queryContext executeQueryRequestAndFetchResult:query error:&error];
let query = OHMySQLQueryRequestFactory.select("tasks", condition: nil)
let response = try? OHMySQLContainer.shared.mainQueryContext?.executeQueryRequestAndFetchResult(query)

You will get a response like this:

[{ @"id": @1, @"name": @"Task name", @"description": @"Task description", @"status": [NSNull null] }]

INSERT

OHMySQLQueryRequest *query = [OHMySQLQueryRequestFactory INSERT:@"tasks" set:@{ @"name": @"Something", @"desctiption": @"new task" }];
NSError error;
[queryContext executeQueryRequest:query error:&error];
let query = OHMySQLQueryRequestFactory.insert("tasks", set: ["name": "Something", "desctiption": "new task"])
try? mainQueryContext?.execute(query)

UPDATE

OHMySQLQueryRequest *query = [OHMySQLQueryRequestFactory UPDATE:@"tasks" set:@{ @"name": @"Something", @"description": @"new task update" } condition:@"id=5"];
NSError error;
[queryContext executeQueryRequest:query error:&error];
let query = OHMySQLQueryRequestFactory.update("tasks", set: ["name": "Something"], condition: "id=7")
try? mainQueryContext?.execute(query)

DELETE

OHMySQLQueryRequest *query = [OHMySQLQueryRequestFactory DELETE:@"tasks" condition:@"id=10"];
NSError error;
[queryContext executeQueryRequest:query error:&error];
let query = OHMySQLQueryRequestFactory.delete("tasks", condition: "id=10")
try? mainQueryContext?.execute(query)

JOINs

The response contains array of dictionaries (like JSON). You can do 4 types of joins (INNER, RIGHT, LEFT, FULL) using string constants.

OHMySQLQueryRequest *query = [OHMySQLQueryRequestFactory JOINType:OHJoinInner													fromTable:@"tasks"
						      columnNames:@[@"id", @"name", @"description"]
							   joinOn:@{ @"subtasks":@"tasks.id=subtasks.parentId" }];
NSArray *results = [queryContext executeQueryRequestAndFetchResult:query error:nil];
let query = OHMySQLQueryRequestFactory.joinType(OHJoinInner, fromTable: "tasks", columnNames: ["id", "name", "description"], joinOn: ["subtasks": "tasks.id=subtasks.parentId"])
let result = try? mainQueryContext?.executeQueryRequestAndFetchResult(query)

Object Mapping

You have to implement the protocol OHMappingProtocol for your models. Insertion looks like the following (in this example the NSManagedObject instance). The library has only a primary logic for mapping, so I would recommend you writing a mapping logic by yourself. If you are using Swift you cannot use fundamental number types (Int, Double), only NSNumber (due to run-time).

[queryContext insertObject:task];
BOOL result = [queryContext save:nil];
mainQueryContext?.insertObject(task)
try? mainQueryContext?.save()

You can update/delete the objects easily.

// You don't need to specify primary index here.  It'll be update for you.
OHTask *task = [OHTask new];
task.name = @"Code cleanup";
task.taskDescription = @"Delete unused classes and files";
task.status = 0;
[queryContext updateObject:task];
...
task.name = @"Something";
task.status = 1;
[task update];
...
[queryContext deleteObject:task];
BOOL result = [queryContext save:nil];
let task = Task()
task.name = "sample"
mainQueryContext?.updateObject(task)
mainQueryContext?.deleteObject(task)

try? mainQueryContext?.save()

Communication

paypal

License

OHMySQL is released under the MIT license. See LICENSE for details.

Comments
  • "setValue:forUndefinedKey" XCODE 9.1, Swift 4

    Hi I converted my code from swift 3 to swift 4 and updated Xcode version to 9.1 from 8. Now, when i run my application it is giving me this "setValue:forUndefinedKey" error while mapping response to dictionary.

    Can you please guide me what can be the possible issues ??

    bug needs investigation 
    opened by alihaider525 10
  • Provide an escape function

    Provide an escape function

    The building of query string lacks escaping of special characters. I suggest adding a public function like this and apply it to NSString (SQLQueries) functions.

    enhancement 
    opened by goodman-capu 6
  • Adds support for Carthage by adding xcodeproj in the root directory.

    Adds support for Carthage by adding xcodeproj in the root directory.

    Hello, thanks for creating this library! I'd like to use it with Carthage so I created a branch that supports Carthage. Basic requirement is to have a Xcodeproj in the root directory which I created using xcodegen and I checked in project.yml so it should be easy to recreate the Xcode project again if needed. I had to provide bundle identifier so I picked com.github.oleghnidets. Let me know if you are happy with this change.

    enhancement 
    opened by wrutkowski-tyro 5
  • swift tutorial => OHMySQLContainer.shared() doesn't work

    swift tutorial => OHMySQLContainer.shared() doesn't work

    What did you do?

    The following line of code in the tutorial doesn't work! It is swift version in the select part

    let response = try? OHMySQLContainer.shared().mainQueryContext?.executeQueryRequestAndFetchResult(query)

    shared() will cause compile error! Hint: Cannot call value of non-function type 'OHMySQLContainer' Replace '()' with ''

    What happened instead?

    If i use the following line, It can compile but no response.

             let response = try?OHMySQLContainer.shared.mainQueryContext?.executeQueryRequestAndFetchResult(query)
    

    Now, I use the following line, can use!

    let response = try? context.executeQueryRequestAndFetchResult(query)

    But i don't think it is a well behavior.

    What did you expect?

    Please revise the tutorial, thanks!

    OHMySQL Environment

    • **OHMySQL version:**2.1.3
    • **Xcode version:**9.2
    • Swift version: *(if applicable, if not remove)*4.03
    • **Platform(s) running OHMySQL:**ios
    enhancement 
    opened by xiaosean 5
  • Can't build for MacCatalyst

    Can't build for MacCatalyst

    What did you do?

    Building an app supporting MacCatalyst.

    What happened instead?

    I get an error when trying to run the app saying "ld: [projectDirectory]Pods/OHMySQL/OHMySQL/lib/ios/libmysqlclient.a(libmysql.o), building for Mac Catalyst, but linking in object file built for iOS Simulator, for architecture x86_64"

    What did you expect?

    It should build and run.

    OHMySQL Environment

    • **OHMySQL version: **
    • Xcode version: 13.1
    • Platform(s) running OHMySQL: iOS, MacCatalyst
    opened by yoKurt94 4
  • Bitcode error on Xcode 8

    Bitcode error on Xcode 8

    Hey there, I'm trying to use your library on Xcode 8 and any attempt at archiving an app bundled with it results in a Bitcode error on the libmysqlclient.a binary. The error is as follows:

    ld: bitcode bundle could not be generated because '.../Pods/OHMySQL/OHMySQL/lib/ios/libmysqlclient.a(libmysql.o)' was built without full bitcode. All object files and libraries for bitcode must be generated from Xcode Archive or Install build for architecture arm64.
    

    It seems the libmysqlclient.a binary needs to be rebuilt in Xcode >v8, otherwise Archiving will fail. All attempts to disable bitcode in settings have resulted in no changes. I'm currently compiling a new libmysqlclient.a binary with Xcode 8 with the hopes to solve this.

    Any suggestions or alternative methods would be appreciated, thank you!

    bug help wanted 
    opened by anoadragon453 4
  • It  seems it doesn't support for Mac mini (M1 chip , 2020)

    It seems it doesn't support for Mac mini (M1 chip , 2020)

    Hey, I try to create a commandline tool for Mac , integrating OHMySQL by dragging its source code: image

    However, when I build the Xcode project it gives me such error messages : “ Building for macOS, but the linked library 'libmysqlclient.a' was built for iOS + iOS Simulator." " The linked library 'libmysqlclient.a' is missing one or more architectures required by this target: arm64." The first problem is so easy .I just need to remove the file built for IOS + IOS Simulator; The sec problem, I consider going to its official website:https://dev.mysql.com/downloads/mysql/ then download the "mysql-8.0.27-macos11-arm64.tar.gz" and unzip it image

    Next, I copy the "libmysqlclient.a" build for arm64 from downloaded folder and replace the old one build for x86 in the project. image

    Try to build the project again , but still fail with warning and errors. warning: no rule to process file '/Users/atomlee/Desktop/Demo/xcode_test/test_Controll_SQL/test_Controll_SQL/OHMySQL/lib/include/mysql/client_plugin.h.pp' of type 'sourcecode.pascal' for architecture 'arm64'

    errors:

    Undefined symbol: _BIO_free

    Undefined symbol: _BIO_get_callback_arg

    Undefined symbol: _BIO_new_bio_pair

    Undefined symbol: _BIO_new_mem_buf

    Undefined symbol: _BIO_set_callback_arg

    Undefined symbol: _BIO_set_callback_ex

    Undefined symbol: _BN_bin2bn

    Undefined symbol: _DH_free

    Undefined symbol: _DH_new

    Undefined symbol: _DH_set0_pqg

    Undefined symbol: _ERR_clear_error

    Undefined symbol: _ERR_error_string_n

    Undefined symbol: _ERR_get_error

    Undefined symbol: _ERR_get_error_line_data

    Undefined symbol: _EVP_CIPHER_CTX_free

    Undefined symbol: _EVP_CIPHER_CTX_new

    Undefined symbol: _EVP_CIPHER_CTX_set_padding

    Undefined symbol: _EVP_CIPHER_block_size

    Undefined symbol: _EVP_CIPHER_iv_length

    Undefined symbol: _EVP_DecryptFinal_ex

    Undefined symbol: _EVP_DecryptInit

    Undefined symbol: _EVP_DecryptUpdate

    Undefined symbol: _EVP_DigestFinal_ex

    Undefined symbol: _EVP_DigestInit_ex

    Undefined symbol: _EVP_DigestUpdate

    Undefined symbol: _EVP_EncryptFinal

    Undefined symbol: _EVP_EncryptInit

    Undefined symbol: _EVP_EncryptUpdate

    Undefined symbol: _EVP_MD_CTX_free

    Undefined symbol: _EVP_MD_CTX_new

    Undefined symbol: _EVP_MD_CTX_reset

    Undefined symbol: _EVP_aes_128_cbc

    Undefined symbol: _EVP_aes_128_cfb1

    Undefined symbol: _EVP_aes_128_cfb128

    Undefined symbol: _EVP_aes_128_cfb8

    Undefined symbol: _EVP_aes_128_ecb

    Undefined symbol: _EVP_aes_128_ofb

    Undefined symbol: _EVP_aes_192_cbc

    Undefined symbol: _EVP_aes_192_cfb1

    Undefined symbol: _EVP_aes_192_cfb128

    Undefined symbol: _EVP_aes_192_cfb8

    Undefined symbol: _EVP_aes_192_ecb

    Undefined symbol: _EVP_aes_192_ofb

    Undefined symbol: _EVP_aes_256_cbc

    Undefined symbol: _EVP_aes_256_cfb1

    Undefined symbol: _EVP_aes_256_cfb128

    Undefined symbol: _EVP_aes_256_cfb8

    Undefined symbol: _EVP_aes_256_ecb

    Undefined symbol: _EVP_aes_256_ofb

    Undefined symbol: _EVP_sha1

    Undefined symbol: _EVP_sha256

    Undefined symbol: _FIPS_mode

    Undefined symbol: _FIPS_mode_set

    Undefined symbol: _OPENSSL_init_crypto

    Undefined symbol: _OPENSSL_init_ssl

    Undefined symbol: _PEM_read_RSA_PUBKEY

    Undefined symbol: _PEM_read_bio_RSA_PUBKEY

    Undefined symbol: _RAND_bytes

    Undefined symbol: _RSA_free

    Undefined symbol: _RSA_public_encrypt

    Undefined symbol: _RSA_size

    Undefined symbol: _SSL_CIPHER_get_name

    Undefined symbol: _SSL_CTX_check_private_key

    Undefined symbol: _SSL_CTX_ctrl

    Undefined symbol: _SSL_CTX_free

    Undefined symbol: _SSL_CTX_get0_param

    Undefined symbol: _SSL_CTX_get_cert_store

    image

    I do need OHMySQL running perfectly on my M1 chip's Mac mini. What should I do to solve this problem ? Please Help me !!! Thanks...

    opened by AtomLee4279 3
  • Commands out of sync

    Commands out of sync

    What did you do?

    I am trying to fetch a bunch of queries that were prepared as "CALL" function. The queue contains the same function with other variables. The database has a limit of logged instances on the same credentials.

    What happened instead?

    Unfortunately, despite the fact that I was able to log in one time and invoke many commands, I get this error after first positive result: 2020-04-09 23:47:48.503632+0200 app[4332:387694] -[OHMySQLQueryContext executeQueryRequest:error:] -[ERROR] The connection is broken: Commands out of sync; you can't run this command now 2020-04-09 23:47:48.503779+0200 app[4332:387694] -[OHMySQLQueryContext executeQueryRequest:error:] -[ERROR] Cannot connect to DB. Check your configuration properties. 2020-04-09 23:47:48.504129+0200 app[4332:387694] -[OHMySQLQueryContext executeQueryRequestAndFetchResult:error:] -[ERROR] Cannot get results: Error Domain=mysql.error.domain Code=2000 "Cannot connect to DB. Check your configuration properties." UserInfo={NSLocalizedDescription=Cannot connect to DB. Check your configuration properties.}

    What did you expect?

    I want to fetch the completed queue by call many queries of the same function with different variables.

    Demo Project

    Sample code:

    let user = OHMySQLUser(userName: "username", password: "password", serverName: "www.example.com", dbName: "name", port: 123456, socket: nil)!
    self.coordinator = OHMySQLStoreCoordinator(user: user)
    self.coordinator!.connect()
            
    let context = OHMySQLQueryContext()
    context.storeCoordinator = self.coordinator!
            
    var i = 1001
    var requestArray: [[String: Any]] = []
    repeat {
            let query = "CALL fetch_data_with_parameters('\(i)', '01', null)"
            let request = OHMySQLQueryRequest.init(queryString: query)
                
            let response = try context.storeCoordinator.executeQueryRequestAndFetchResult(request)
                
           if let add = response {
                  requestArray += add
           }
    
           sleep(10)
    
          i += 1
    } while i < 1900
    
    self.coordinator!.disconnect()
    
    needs investigation 
    opened by piotrekjeremicz 3
  • Could you please give more documentations for querying?

    Could you please give more documentations for querying?

    What did you do?

    ℹ I want to query the top 10 rows and wrote the line below: let query = OHMySQLQueryRequestFactory.select("Info", condition: "LIMIT 10")

    What happened instead?

    error message: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 10' at line 1"

    What did you expect?

    LIMIT 10 is the correct SQL syntax

    ℹ Expected results. Please replace this with what you expected.

    OHMySQL Environment

    • OHMySQL version:
    • Xcode version:
    • Swift version: (if applicable, if not remove)
    • Platform(s) running OHMySQL:

    Demo Project

    Thank you. It is a good library, I will appreciate more if the documentation is clearer!

    ℹ Please link to or upload a project we can download that reproduces the issue.

    bug needs investigation 
    opened by estella98 3
  • IPAD3 ver IOS 10.3.3

    IPAD3 ver IOS 10.3.3

    What did you do?

    iPad 3 IOS 10.3 is the last version. Apple let go of the iPad 3.

    I'm running OHMYSQL on iPad 3. Here is the phrase: Warning: Libinfo call to mDNS Responder on mine thread

    There is no problem with IOS 11.

    I'm trying to develop a SQL monitoring app with version 10.3 of IOS.

    IOS10.3 version is also available.

    OHMySQL Environment

    • **OHMySQL version: 10.2.2
    • **Xcode version: Version 9.4.1 (9F2000)
    • *Swift version: 4 (if applicable, if not remove)
    • **Platform(s) running OHMySQL:

    Demo Project

    ℹ Please link to or upload a project we can download that reproduces the issue.

    bug needs investigation 
    opened by JinhongPark 3
  • question?

    question?

    What did you do?

    ℹ Please replace this with what you did.

    What happened instead?

    ℹ Actual results. Please replace this with of what happened instead.

    What did you expect?

    ℹ Expected results. Please replace this with what you expected.

    OHMySQL Environment

    • OHMySQL version:
    • Xcode version:
    • Swift version: (if applicable, if not remove)
    • Platform(s) running OHMySQL:

    Demo Project

    ℹ Please link to or upload a project we can download that reproduces the issue.

    opened by hodagreat 3
  • Insert Image as Blob

    Insert Image as Blob

    Great Library! I have a question of the possible Data Types. Is it possible to send a BLOB? I want to send a Image and haven't find a solution.

    Looking forward to your response. Thanks so much.

    question 
    opened by BigityFu 1
  • [Query] Is there a mechanism for connection timeout if the server we are attempting to connect is unavailable?

    [Query] Is there a mechanism for connection timeout if the server we are attempting to connect is unavailable?

    Hi there! Thanks for the wonderful library for making connections from iOS to MySQL database an easy process! I would like to clarify if there is any mechanisms for us to set a timeout property when calling the coordinator.connect() function? Currently an issue is that when setting the MySQL server ip address to a non existent ip address (to simulate a scenario when the server is down), it seems that the coordinator.connect() function attempts to reconnect itself and takes about 1 min 20 seconds before it gives up and returning the proper ResultErrorType for my codes to do the proper error handling.

    It would be great if there was an option to i) allow user to disable reconnections if the first attempt to connect to the database has failed, OR ii) allow the user to specify a timeout input to set the maximum time for the method to attempt to reconnect before giving up and returning the proper error codes.

    Looking forward to your response. Thanks in advance!

    Running on latest version of OHMySQL 3.1.0

    enhancement 
    opened by clarencechng 4
  • Can we call stored procedure using OHMySQL? Thank You.

    Can we call stored procedure using OHMySQL? Thank You.

    What did you do?

    ℹ Please replace this with what you did.

    What happened instead?

    ℹ Actual results. Please replace this with of what happened instead.

    What did you expect?

    ℹ Expected results. Please replace this with what you expected.

    OHMySQL Environment

    • OHMySQL version:
    • Xcode version:
    • Swift version: (if applicable, if not remove)
    • Platform(s) running OHMySQL:

    Demo Project

    ℹ Please link to or upload a project we can download that reproduces the issue.

    enhancement question 
    opened by cr-dasglobtech 2
  • TEXT fields return NSData objects rather than NSString

    TEXT fields return NSData objects rather than NSString

    What did you do?

    Issued a SELECT from a table with TEXT fields

    What happened instead?

    The TEXT values came back as NSData types

    What did you expect?

    I expected the fields to be of type NSString. Seems like NSString is the obvious matching for a TEXT field. The field was utf8 encoded in the database.

    OHMySQL Environment

    • OHMySQL version: 2.1.3 (March 2018)
    • Xcode version: 9.2
    • Swift version: (if applicable, if not remove)
    • Platform(s) running OHMySQL: OSX 10.13.3

    Demo Project

    Don't have a demo project yet. It's not hard to work-around the issue, but maybe it would be nice to have an option to map TEXT to NSString rather than NSData?

    bug needs investigation 
    opened by EricShapiro 2
  • INSERT with NSNull.null inserts a zero into an optional Int field rather than NULL

    INSERT with NSNull.null inserts a zero into an optional Int field rather than NULL

    What did you do?

    Issued an INSERT with an NSNull.null value for an INT field.

    What happened instead?

    A zero value was inserted into the INT field rather than NULL. Note that the field allows for NULL values.

    What did you expect?

    I expected the field to contain NULL (no value).

    OHMySQL Environment

    • OHMySQL version: 2.1.3 (March 2018)
    • Xcode version: 9.2
    • Swift version: (if applicable, if not remove)
    • Platform(s) running OHMySQL: OSX 10.13.3

    Demo Project

    Don't have a demo project yet. The INSERT code is pretty simple:

    NSDictionary<NSString*, id> *d = [NSDictionary dictionaryWithObjectsAndKeys: "Bob", @"user", [NSDate date], @"modified", NSNull.null, @"rec_no", nil];

    OHMySQLQueryRequest *request = [OHMySQLQueryRequestFactory INSERT:@"Log" set:d];

    and then passed the request to an OHMySQLQueryContext.

    bug needs investigation 
    opened by EricShapiro 1
Releases(3.1.2)
Owner
Oleg
Passionate  developer
Oleg
Safe and easy wrappers for common Firebase Realtime Database functions.

FirebaseHelper FirebaseHelper is a small wrapper over Firebase's realtime database, providing streamlined methods for get, set, delete, and increment

Quan Vo 15 Apr 9, 2022
A Generic CoreData Manager to accept any type of objects. Fastest way for adding a Database to your project.

QuickDB FileManager + CoreData ❗️ Save and Retrieve any thing in JUST ONE line of code ❗️ Fast usage dataBase to avoid struggling with dataBase comple

Behrad Kazemi 17 Sep 24, 2022
Innova CatchKennyGame - The Image Tap Fun Game with keep your scores using Core Database

Innova_CatchKennyGame The Image Tap Fun Game with keep your scores using Core Da

Alican Kurt 0 Dec 31, 2021
Listens to changes in a PostgreSQL Database and via websockets.

realtime-swift Listens to changes in a PostgreSQL Database and via websockets. A Swift client for Supabase Realtime server. Usage Creating a Socket co

Supabase 35 Dec 1, 2022
Realm is a mobile database: a replacement for Core Data & SQLite

Realm is a mobile database that runs directly inside phones, tablets or wearables. This repository holds the source code for the iOS, macOS, tvOS & wa

Realm 15.7k Jan 1, 2023
WCDB is a cross-platform database framework developed by WeChat.

WCDB 中文版本请参看这里 WCDB is an efficient, complete, easy-to-use mobile database framework used in the WeChat application. It's currently available on iOS,

Tencent 9.6k Jan 8, 2023
Sync Realm Database with CloudKit

IceCream helps you sync Realm Database with CloudKit. It works like magic! Features Realm Database Off-line First Thread Safety Reactive Programming O

Soledad 1.8k Jan 6, 2023
Movies Information DataBase (Add - Delete - Edit - Search)

MoviesInformation Movies Information DataBase (Add - Delete - Edit - Search) This Code Provide Simple Program About Movies Information This Program Ca

Mohammad Jaha 2 Sep 15, 2021
A simple order manager, created in order to try Realm database

Overview A simple order manager, created in order to get acquainted with the features and limitations of the local Realm database. The project is writ

Kirill Sidorov 0 Oct 14, 2021
A sample application showcasing Vapor 4 connecting to an Oracle database using SwiftOracle package.

vapor-oracle A sample application showcasing Vapor 4 connecting to an Oracle database using SwiftOracle package. In this Vapor application, we create

Ilia Sazonov 3 Sep 22, 2022
A property wrapper for displaying up-to-date database content in SwiftUI views

@Query Latest release: November 25, 2021 • version 0.1.0 • CHANGELOG Requirements: iOS 13.0+ / macOS 10.15+ / tvOS 13.0+ / watchOS 6.0+ • Swift 5.5+ /

Gwendal Roué 102 Dec 29, 2022
A food delivery app using firebase as the database.

FDA-ONE Food Delivery Application is a mobile application that users can use to find the best restaurant around their location and order the meals the

Naseem Oyebola 0 Nov 28, 2021
BucketServer - Small API with SQLite database that saves notes for an iOS appliction called Bucket list

BucketList Server-Side Small API with SQLite database that saves notes for an iO

null 0 Dec 30, 2021
Synco - Synco uses Firebase's Realtime Database to synchronize data across multiple devices, in real time

Synco Synco uses Firebase's Realtime Database to synchronize a color across mult

Alessio 0 Feb 7, 2022
PostgreSQL database adapter (ORM included)

PostgreSQL PostgreSQL adapter for Swift 3.0. Conforms to SQL, which provides a common interface and ORM. Documentation can be found there. Installatio

Zewo Graveyard 91 Sep 9, 2022
CodableCloudKit allows you to easily save and retrieve Codable objects to iCloud Database (CloudKit)

CodableCloudKit CodableCloudKit allows you to easily save and retrieve Codable objects to iCloud Database (CloudKit) Features ℹ️ Add CodableCloudKit f

Laurent Grondin 65 Oct 23, 2022
A type-safe, protocol-based, pure Swift database offering effortless persistence of any object

There are many libraries out there that aims to help developers easily create and use SQLite databases. Unfortunately developers still have to get bogged down in simple tasks such as writing table definitions and SQL queries. SwiftyDB automatically handles everything you don't want to spend your time doing.

Øyvind Grimnes 489 Sep 9, 2022
A Swift library to fetch the schema from a SQLite3 database.

SQLite3Schema A small library to fetch the schema of a SQLite database. Contains a SQLite3 helper module for Linux. TBD. Uses just the raw SQLite API.

Helge Heß 4 Sep 17, 2022
This Project domonstrate the latest Swift on Server to create RESTFul API's connected via Database: MongoDB NoSql

Swift is a general-purpose programming language built using a modern approach to safety & performance that make it specifically suitable for Server applications. Vapor is a web framework for Swift, allowing you to write backends, web apps APIs and HTTP servers in Swift

Furqan 3 Aug 23, 2022