title: Components ## Components ## Libcloud is composed of multiple components, currently those are: * [Compute](/docs/compute-overview.html) - libcloud.compute.* * [Storage](/docs/storage-overview.html) - libcloud.storage.* * [Load balancers](/docs/load-balancer-overview.html) - libcloud.loadbalancer.* * [DNS](/docs/dns-overview.html) - libcloud.dns.* Each component is relatively self-sustainable and exposes a simple and easy to use base API which works across all the supported providers. In places where it makes sense a component is also aware of other components. Good example of this is a `balancer_attach_node` method in the load balancer API. This method takes `Node` object from the compute API as an argument and automatically reads its first public IP address before adding a member to the load balancer. Besides the Base API some drivers also implement driver-specific or so called extension methods and arguments. Those methods implement functionality which is specific to a provider or a subset of providers. They can be easily recognized because they are prefixed with an `ex_`.