# Supported data types

The Aerospike database supports the following native types:

Click to view data types

-   Array
-   Boolean
-   Byte
-   Bytes
-   Double
-   Float
-   GeoJSON
-   HLL
-   Integer
-   List
-   Long
-   Map
-   Short
-   Signed Byte
-   String
-   Unsigned Integer
-   Unsigned Long
-   Unsigned Short

When setting a value in C#, the Aerospike library automatically determines the best native Aerospike data type for storage:

-   Integers and longs are converted to an internal number format.
-   Strings are converted to UTF-8.
-   Byte arrays are stored as blobs.

Aerospike’s internal typing system automatically converts data types. Cross-language data type issues are handled internally by the Aerospike libraries. For example, an Aerospike String is stored internally in UTF-8 format, allowing Java and C#–which both use Unicode preferentially–applications to transparently interact with Python, which uses UTF-8, and C, which does not use standard internal character encoding.

::: note
To avoid format conversion, the C# `byte[]` type is stored as a pure blob and presented to all other languages as a collection of bytes.
:::
::: caution
The C# client no longer supports Microsoft’s BinaryFormatter to convert data types not directly supported by the Aerospike server. See [BinaryFormatter not supported](https://aerospike.com/docs/develop/client/csharp/incompatible/#version-600---remove-binaryformatter).

Instead, we recommend using collection data types based on unchanging C# data types such as arrays of integers and strings, or using a higher level serialization system such as a cross-language serializer (for example, [MessagePack](http://msgpack.org/) or [Google’s Protocol Buffers](https://protobuf.dev/%5D).
:::