Core Foundation (también llamado CF ) es una interfaz de programación de aplicaciones (API) en C escrita por Apple Inc. para sus sistemas operativos , y es una mezcla de rutinas de bajo nivel y funciones de envoltura . La mayoría de las rutinas de Core Foundation siguen una convención de nomenclatura determinada que maneja objetos opacos, por ejemplo, CFDictionaryRef para funciones cuyos nombres comienzan con CFDictionary, y estos objetos a menudo se contabilizan por referencia (manualmente) a través de y . Internamente, Core Foundation forma la base de los tipos en la biblioteca estándar de Objective-C y la API Carbon . [ 1 ]CFRetainCFRelease
El uso más frecuente de Core Foundation es pasar sus propios tipos primitivos de datos, incluidos bytes sin procesar , cadenas Unicode , números , fechas de calendario y UUID , así como colecciones como matrices , conjuntos y diccionarios , a numerosas rutinas de macOS C , principalmente aquellas relacionadas con la GUI . A nivel del sistema operativo, Core Foundation también proporciona una gestión estandarizada de las preferencias de la aplicación a través de , manejo de paquetes , bucles de ejecución , comunicación entre procesos a través de y , y un cuadro de diálogo básico de mensajes de interfaz gráfica de usuario a través de .CFPropertyListCFMachPortCFNotificationCenterCFUserNotification
Otras partes de la API incluyen rutinas de utilidad y adaptadores para las API existentes que facilitan su uso. Las rutinas de utilidad realizan acciones como E/S de sistema de archivos y red mediante la traducción de orden de bytes ( utilidades de orden de bytes). Algunos ejemplos de rutinas adaptadoras incluyen las de Core Foundation para sockets Unix, la API CFSocket.CFReadStreamCFWriteStreamCFURL
Algunos tipos en Core Foundation son "intercambiables" o se pueden convertir fácilmente mediante una simple conversión de tipo, con sus equivalentes en Foundation Kit . Por ejemplo, se podría crear un CFDictionaryReftipo de Core Foundation y, posteriormente, usar una conversión de tipo estándar de C para convertirlo a su equivalente en Objective-C, NSDictionary *y luego usar los métodos de Objective-C deseados en ese objeto como se haría normalmente.
Core Foundation tiene un modelo de complementos ( CFPlugin ) que se basa en el modelo de objetos de componentes de Microsoft . [ 2 ]
Disponibilidad de código abierto
Apple solía lanzar la mayor parte de CF como un proyecto de código abierto llamado CFLite que se puede usar para escribir aplicaciones multiplataforma para macOS, Linux y Windows . [ 3 ]
Una implementación de código abierto de terceros llamada OpenCFLite extiende Apple CFLite para compilar en entornos Windows y Linux de 32 bits . Es mantenida por uno de los desarrolladores de WebKit , pero se estancó en 2015. [ 4 ] La plataforma de karaoke KJams mantiene una bifurcación desde 2017. Esta versión, por su programador David M. Cotter, admite sistemas de 64 bits y tiene una implementación de CFNetwork con TLS basado en LibreSSL . [ 5 ] Grant Erickson (colaborador original de Brent Fulgham en la versión de SourceForge) creó una bifurcación de OpenCFLite en 2021 [ 6 ] con un puerto complementario de la CFHostparte de CFNetwork, como OpenCFNetwork. [ 7 ]
La Swift Corelib Foundation, una versión alternativa del Foundation Kit para el lenguaje de programación Swift para plataformas que no son de Apple, contiene una versión casi completa de Core Foundation publicada bajo la licencia Apache 2.0 . [ 8 ]
GNUstep incluye una versión de Core Foundation llamada "libs-corebase". [ 9 ]
Véase también
- GLib – el equivalente del Proyecto GNOME
Referencias
- ↑ ridículo_pez (2006). "Puente" .
- ↑ "Complementos y COM de Microsoft" . Biblioteca para desarrolladores de Mac . Apple Inc. Archivado del original el 1 de septiembre de 2014. Consultado el 25 de marzo de 2015 .
- ↑ "Navegador de código fuente" .
- ↑ Proyecto OpenCFLite en SourceForge .
- ↑ "CFLite" . KJams . Consultado el 19 de febrero de 2020 .
- ↑ "Proyecto OpenCFLite en GitHub" . GitHub . Consultado el 30 de noviembre de 2021 .
- ↑ "Proyecto OpenCFNetwork en GitHub" . GitHub . Consultado el 30 de noviembre de 2021 .
- ↑ "swift-corelibs-foundation" . GitHub . 14 de octubre de 2021.
- ↑ "gnustep/libs-corebase: La biblioteca GNUstep CoreBase es una biblioteca de objetos C no gráficos de propósito general" . GitHub . GNUstep. 19 de noviembre de 2019.
Enlaces externos
- Referencia de Core Foundation en Apple Developer
- OpenCFLite en SourceForge
- CFLite, que incluye CFNetwork , funciona en 64 bits y utiliza LibreSSL (TLS 1.1, 1.2).
- API de macOS