[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › [Bytes](https://evolu.dev/docs/api-reference/common/Bytes) › ByteLength

```ts
type ByteLength = number &
  import("./Brand.ts").Brand<"NonNaN"> &
  import("./Brand.ts").Brand<"Finite"> &
  import("./Brand.ts").Brand<"Int"> &
  import("./Brand.ts").Brand<"NonNegative"> &
  import("./Brand.ts").Brand<"ByteLength">;
```

Defined in: [packages/common/src/Bytes.ts:1424](https://github.com/evoluhq/evolu/blob/dd96d79f1dbe9a49fa12ce8e0aa7d3d0177795ca/packages/common/src/Bytes.ts#L1424)

Non-negative safe integer number of bytes.

The canonical unit for sizes, as milliseconds are for time. APIs accept
[ByteSize](https://evolu.dev/docs/api-reference/common/Bytes/type-aliases/ByteSize) and normalize it with [byteSizeToByteLength](https://evolu.dev/docs/api-reference/common/Bytes/functions/byteSizeToByteLength). Parse text
such as an environment variable with [ByteLengthFromString](https://evolu.dev/docs/api-reference/common/Bytes/variables/ByteLengthFromString). Negative
zero is rejected so zero has one canonical representation.

### Example

```ts

assertOk(ByteLength.fromUnknown(0), 0);
assertOk(ByteLength.fromUnknown(1024), 1024);
assertErr(ByteLength.fromUnknown(-0));
assertErr(ByteLength.fromUnknown(-1));
assertErr(ByteLength.fromUnknown(1.5));
```