---
title: CFPlugIn
framework: corefoundation
role: symbol
role_heading: Class
path: corefoundation/cfplugin
---

# CFPlugIn

## Declaration

```swift
class CFPlugIn
```

## Overview

Overview CFPlugIn provides a standard architecture for application extensions. With CFPlugIn, you can design your application as a host framework that uses a set of executable code modules called plug-ins to provide certain well-defined areas of functionality. This approach allows third-party developers to add features to your application without requiring access to your source code. You can also bundle together plug-ins for multiple platforms and let CFPlugIn transparently load the appropriate plug-in at runtime. You can use CFPlugIn to add plug-in capability to, or write a plug-in for, your application.

## Topics

### Creating Plug-ins

- [CFPlugInCreate(_:_:)](corefoundation/cfplugincreate(_:_:).md)
- [CFPlugInInstanceCreate(_:_:_:)](corefoundation/cfplugininstancecreate(_:_:_:).md)

### Registration

- [CFPlugInRegisterFactoryFunction(_:_:)](corefoundation/cfpluginregisterfactoryfunction(_:_:).md)
- [CFPlugInRegisterFactoryFunctionByName(_:_:_:)](corefoundation/cfpluginregisterfactoryfunctionbyname(_:_:_:).md)
- [CFPlugInRegisterPlugInType(_:_:)](corefoundation/cfpluginregisterplugintype(_:_:).md)
- [CFPlugInUnregisterFactory(_:)](corefoundation/cfpluginunregisterfactory(_:).md)
- [CFPlugInUnregisterPlugInType(_:_:)](corefoundation/cfpluginunregisterplugintype(_:_:).md)

### CFPlugIn Miscellaneous Functions

- [CFPlugInAddInstanceForFactory(_:)](corefoundation/cfpluginaddinstanceforfactory(_:).md)
- [CFPlugInFindFactoriesForPlugInType(_:)](corefoundation/cfpluginfindfactoriesforplugintype(_:).md)
- [CFPlugInFindFactoriesForPlugInTypeInPlugIn(_:_:)](corefoundation/cfpluginfindfactoriesforplugintypeinplugin(_:_:).md)
- [CFPlugInGetBundle(_:)](corefoundation/cfplugingetbundle(_:).md)
- [CFPlugInGetTypeID()](corefoundation/cfplugingettypeid().md)
- [CFPlugInIsLoadOnDemand(_:)](corefoundation/cfpluginisloadondemand(_:).md)
- [CFPlugInRemoveInstanceForFactory(_:)](corefoundation/cfpluginremoveinstanceforfactory(_:).md)
- [CFPlugInSetLoadOnDemand(_:_:)](corefoundation/cfpluginsetloadondemand(_:_:).md)

### Callbacks

- [CFPlugInDynamicRegisterFunction](corefoundation/cfplugindynamicregisterfunction.md)
- [CFPlugInFactoryFunction](corefoundation/cfpluginfactoryfunction.md)
- [CFPlugInUnloadFunction](corefoundation/cfpluginunloadfunction.md)

### Constants

- [Information Property List Keys](corefoundation/cfplugin-information-property-list-keys.md)

## Relationships

### Conforms To

- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)

## See Also

### Opaque Types

- [CFAllocator](corefoundation/cfallocator.md)
- [CFArray](corefoundation/cfarray.md)
- [CFAttributedString](corefoundation/cfattributedstring.md)
- [CFBag](corefoundation/cfbag.md)
- [CFBinaryHeap](corefoundation/cfbinaryheap.md)
- [CFBitVector](corefoundation/cfbitvector.md)
- [CFBoolean](corefoundation/cfboolean.md)
- [CFBundle](corefoundation/cfbundle.md)
- [CFCalendar](corefoundation/cfcalendar.md)
- [CFCharacterSet](corefoundation/cfcharacterset.md)
- [CFData](corefoundation/cfdata.md)
- [CFDate](corefoundation/cfdate.md)
- [CFDateFormatter](corefoundation/cfdateformatter.md)
- [CFDictionary](corefoundation/cfdictionary.md)
- [CFError](corefoundation/cferror.md)
