Кіріспе
Mac OS X жүйесіндегі C қолданбалы бағдарламалау интерфейсі (әрі CF деп те аталады) – Apple Inc. компаниясы өз операциялық жүйелері үшін жазған C қолданбалы бағдарламалау интерфейсі (API), және төменгі деңгейдегі процедуралар мен орауыш функциялардың жиынтығы. Core Foundation процедураларының көпшілігі белгілі бір атау конвенциясын сақтайды, олар түсініксіз объектілермен жұмыс істейді, мысалы, CFDictionaryRef функциялары CFDictionary сөзімен басталады, ал бұл объектілер көбінесе CFRetain және CFRelease арқылы (қолмен) саналып есептеледі. Ішкі тұрғысынан Core Foundation, Objective C стандартты кітапханасы мен Carbon API-дегі типтердің негізін құрайды. Core Foundation-ның ең көп қолданылатын саласы – деректердің өзіндік типтерін беру, оның ішінде шикі байттар, Unicode жолдар, сандар, күнтізбе күндері және UUID-тер, сондай-ақ массивтер, жиынтықтар және сөздіктер сияқты жинақтарды көптеген macOS C процедураларына, негізінен GUI-ға қатысты мәселелерде пайдалану. Операциялық жүйе деңгейінде Core Foundation сонымен қатар CFPropertyList арқылы стандартталған қолданба параметрлерін басқаруды, бумаларды басқаруды, орындалу циклдарын, CFMachPort және CFNotificationCenter арқылы процестер аралық байланысты, ал CFUserNotification арқылы қарапайым графикалық пайдаланушы интерфейсі хабарлама диалогын қамтамасыз етеді. API-дің басқа бөліктеріне пайдалануды жеңілдету үшін қолданыстағы API-лерге арналған қосымша процедуралар мен орауыштар кіреді. Қосымша процедуралар CFReadStream, CFWriteStream және CFURL арқылы файлдық жүйе мен желілік I/O сияқты операцияларды, сондай-ақ ендіандылық аудармасын (байт реті бойынша қосымша құралдар) жүзеге асырады. Орауыш процедураларының мысалдарына Unix сокеттері үшін Core Foundation орауыш процедуралары, CFSocket API жатады. Core Foundation-дағы кейбір типтер "бірден-бірге алмастырылатын" болып табылады, яғни оларды қарапайым түрлендіру арқылы Foundation Kit әріптестерімен алмастыруға болады. Мысалы, CFDictionaryRef Core Foundation типін жасап, кейін оны NSDictionary * Objective C типіне стандартты C түрлендіруін қолданып түрлендіріп, содан кейін сол объектіде қалыпты жағдайда қалаған Objective C әдістерін қолдануға болады. Core Foundation Microsoft Component Object Model негізіндегі плагин моделін қолдайды.
Core Foundation (also called CF) is a C application programming interface (API) written by Apple Inc. for its operating systems, and is a mix of low level routines and wrapper functions. Most Core Foundation routines follow a certain naming convention that deal with opaque objects, for example CFDictionaryRef for functions whose names begin with CFDictionary, and these objects are often reference counted (manually) through CFRetain and CFRelease. Internally, Core Foundation forms the base of the types in the Objective C standard library and the Carbon API. The most prevalent use of Core Foundation is for passing its own primitive types for data, including raw bytes, Unicode strings, numbers, calendar dates, and UUIDs, as well as collections such as arrays, sets, and dictionaries, to numerous macOS C routines, primarily those that are GUI related. At the operating system level Core Foundation also provides standardized application preferences management through CFPropertyList, bundle handling, run loops, interprocess communication through CFMachPort and CFNotificationCenter, and a basic graphical user interface message dialog through CFUserNotification. Other parts of the API include utility routines and wrappers around existing APIs for ease of use. Utility routines perform such actions as file system and network I/O through CFReadStream, CFWriteStream, and CFURL and endianness translation (Byte Order Utilities). Some examples of wrapper routines include those for Core Foundation's wrapper routines for Unix sockets, the CFSocket API. Some types in Core Foundation are "toll free bridged", or interchangeable with a simple cast, with those of their Foundation Kit counterparts. For example, one could create a CFDictionaryRef Core Foundation type, and then later simply use a standard C cast to convert it to its Objective C counterpart, NSDictionary *, and then use the desired Objective C methods on that object as one normally would. Core Foundation has a plug in model that is based on the Microsoft Component Object Model.
Ашық бастапқы кодтың қол жетімділігі
Apple бұрын CF-тің көп бөлігін macOS, Linux және Windows үшін кросс-платформалық қолданбалар жазуға арналған CFLite деп аталатын ашық кодты жоба ретінде шығарды. OpenCFLite деп аталатын үшінші тараптың ашық кодты жүзеге асыруы, Apple CFLite-ті 32 биттік Windows және Linux орталарында құру үшін кеңейтеді. Оны WebKit әзірлеушілерінің бірі күтіп бақты, бірақ 2015 жылы даму тоқтап қалды. KJams караоке платформасы 2017 жылдан бері оның бұтағын (fork) қолдап келеді. Бұл нұсқа, оның бағдарламашысы Дэвид М. Коттер, 64 биттік жүйелерді қолдайды және LibreSSL негізіндегі TLS-пен CFNetwork-ті іске асырады. 2021 жылы Грант Эриксон (Брент Фулгаммен бірге SourceForge нұсқасын жасаған бастапқы серіктес) OpenCFLite-тің бұтағын жасады, сонымен қатар CFNetwork-тің CFHost бөлігінің OpenCFNetwork ретіндегі үйлесімді портын жасады. Swift Corelib Foundation, Apple емес платформалар үшін Swift бағдарламалау тілі үшін Foundation Kit-тің қосалқы нұсқасы, Apache License 2.0 лицензиясымен шығарылған Core Foundation-ның дерлік толық нұсқасын қамтиды. GNUstep "libs corebase" деп аталатын Core Foundation нұсқасын қамтиды.