# Lilv C API

This is the complete public C API of lilv.

- Nodes
- Collections
- World
- Plugins
- Ports
- Plugin State
- Scale Points
- Plugin Classes
- Plugin Instances
- Plugin UIs

typedef struct LilvInstanceImpl LilvInstance

  Plugin instance.

typedef void LilvIter

  Collection iterator.

typedef struct LilvNodeImpl LilvNode

  Typed Value.

typedef void LilvNodes

  A set of `LilvNode`.

typedef struct LilvPluginImpl LilvPlugin

  LV2 Plugin.

typedef struct LilvPluginClassImpl LilvPluginClass

  Plugin Class.

typedef void LilvPluginClasses

  A set of `LilvPluginClass`.

typedef void LilvPlugins

  A set of `LilvPlugin`.

typedef struct LilvPortImpl LilvPort

  Port.

typedef struct LilvScalePointImpl LilvScalePoint

  Scale Point.

typedef void LilvScalePoints

  A set of `LilvScalePoint`.

typedef struct LilvStateImpl LilvState

  Plugin state.

typedef struct LilvUIImpl LilvUI

  Plugin UI.

typedef void LilvUIs

  A set of `LilvUI`.

typedef struct LilvWorldImpl LilvWorld

  Lilv World.

void lilv_free(void *ptr)

  Free memory allocated by Lilv.

  This function exists because some systems require memory allocated by a library to be freed by code in the same library. It is otherwise equivalent to the standard C free() function.