All Projects → PureSwift → Swiftfoundation

PureSwift / Swiftfoundation

Licence: mit
Cross-Platform, Protocol-Oriented Programming base library to complement the Swift Standard Library. (Pure Swift, Supports Linux)

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Swiftfoundation

Csvtk
A cross-platform, efficient and practical CSV/TSV toolkit in Golang
Stars: ✭ 566 (-9.15%)
Mutual labels:  cross-platform
Colfer
binary serialization format
Stars: ✭ 597 (-4.17%)
Mutual labels:  cross-platform
Notes
Note-taking application, write down your thoughts.
Stars: ✭ 612 (-1.77%)
Mutual labels:  cross-platform
Heim
Cross-platform async library for system information fetching 🦀
Stars: ✭ 572 (-8.19%)
Mutual labels:  cross-platform
Player
RPG Maker 2000/2003 and EasyRPG games interpreter
Stars: ✭ 585 (-6.1%)
Mutual labels:  cross-platform
Caesium Image Compressor
Caesium is a cross-platform image compression software aimed at helping photographers, bloggers, webmasters, businesses or casual users at storing, sending and sharing digital pictures. Based on libcaesium.
Stars: ✭ 595 (-4.49%)
Mutual labels:  cross-platform
Cpeditor
The IDE for competitive programming 🎉 | Fetch, Code, Compile, Run, Check, Submit 🚀
Stars: ✭ 562 (-9.79%)
Mutual labels:  cross-platform
Capacitor
Build cross-platform Native Progressive Web Apps for iOS, Android, and the Web ⚡️
Stars: ✭ 6,598 (+959.07%)
Mutual labels:  cross-platform
Goblin
An impish, cross-platform binary parsing crate, written in Rust
Stars: ✭ 591 (-5.14%)
Mutual labels:  cross-platform
Usockets
Miniscule cross-platform eventing, networking & crypto for async applications
Stars: ✭ 611 (-1.93%)
Mutual labels:  cross-platform
Server
Mangos ZERO is a server for World of Warcraft. The server serves full world content including authentication & scripts support. Compatible with World of Warcraft clients 1.12.1-1.12.3 - Report all issues at https://www.getmangos.eu/bug-tracker/mangos-zero/
Stars: ✭ 578 (-7.22%)
Mutual labels:  cross-platform
Poco
The POCO C++ Libraries are powerful cross-platform C++ libraries for building network- and internet-based applications that run on desktop, server, mobile, IoT, and embedded systems.
Stars: ✭ 5,762 (+824.88%)
Mutual labels:  cross-platform
Arxlibertatis
Cross-platform port of Arx Fatalis, a first-person role-playing game
Stars: ✭ 602 (-3.37%)
Mutual labels:  cross-platform
React Native Dialogs
React Native wrappers for https://github.com/afollestad/material-dialogs
Stars: ✭ 568 (-8.83%)
Mutual labels:  cross-platform
Guilite
✔️The smallest header-only GUI library(4 KLOC) for all platforms
Stars: ✭ 5,841 (+837.56%)
Mutual labels:  cross-platform
Cpm.cmake
📦 CMake's missing package manager. A small CMake script for setup-free, cross-platform, reproducible dependency management.
Stars: ✭ 560 (-10.11%)
Mutual labels:  cross-platform
Xamarin.forms
Xamarin.Forms Official Home
Stars: ✭ 5,485 (+780.42%)
Mutual labels:  cross-platform
Tvision
A modern port of Turbo Vision 2.0, the classical framework for text-based user interfaces. Now cross-platform and with Unicode support.
Stars: ✭ 612 (-1.77%)
Mutual labels:  cross-platform
Cross Env
🔀 Cross platform setting of environment scripts
Stars: ✭ 5,623 (+802.57%)
Mutual labels:  cross-platform
Seqkit
A cross-platform and ultrafast toolkit for FASTA/Q file manipulation in Golang
Stars: ✭ 607 (-2.57%)
Mutual labels:  cross-platform

SwiftFoundation

Swift Platforms Release License Build Status

Cross-Platform, Protocol-Oriented Programming base library to complement the Swift Standard Library.

Goals

  • Provide a cross-platform interface that mimics Apple's Foundation framework.
  • Provide a POSIX-based implementation for maximum portability.
  • Rewrite Foundation with Protocol-Oriented Programming principals.
  • Long-term Pure Swift replacement for the Cocoa frameworks.

Problems with Apple's Foundation

  • Objective-C - Apple's Foundation is an old API designed for Objective-C. While it works great (on Apple's platforms) and has a nice API for Objective-C programming, when imported into Swift, you can see the shortcomings of its 20+ year old API.
  • Unimplemented - The open source version of Apple's Foundation is severly lacking implementation. Most methods are marked with NSUnimplemented(). Only a small subset of Foundation based on CoreFoundation is implemented (e.g. NSArray, NSString, NSDictionary). Basic Functionality like JSON, Base64, and even HTTP requests are not implemented.
  • Portability - Since Apple's Foundation is backed by CoreFoundation, the only supported platforms are currently Linux, Darwin, and (potentially) Windows. Supporting other platforms (e.g. ARM Linux, BSD, SunOS) would require changes to the CoreFoundation codebase, written in C, which is not good for a long term Swift base library. We want all of our code to be understood by any Swift programmer.
  • Protocol Oriented Programming - Perhaps the biggest reason to use this library, is to break free from the old Object-Oriented Programming paradigms. Swift structures and protocols free you from pointers and memory management, along with bugs related to multithreaded environments. Creating structs for basic types like Date and UUID allows you to use let and var correctly. Structs also bring huge performance improvements since the compiler can perform more optimizations and doesn't have to create all the metadata needed for the Swift class runtime.

Targeted Platforms

Implemented

To see what parts of Foundation are implemented, just look at the unit tests. Completed functionality will be fully unit tested. Note that there is some functionality that is written as a protocol only, that will not be included on this list.

  • [x] Base64
  • [x] Data
  • [x] Date
  • [ ] FileManager
  • [ ] JSON
  • [ ] RegularExpression (POSIX, not ICU)
  • [x] Thread
  • [x] URL
  • [x] UUID

License

This program is free software; you can redistribute it and/or modify it under the terms of the MIT License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].