title: Configuration sidebar_position: 1 id: dart_configuration license: | Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
This page explains the Fory constructor options.
Fory InstancePass options directly to the constructor:
import 'package:fory/fory.dart'; // defaults — good for most single-service scenarios final fory = Fory(); // cross-language service with schema evolution final fory = Fory( compatible: true, maxDepth: 512, );
Create one instance per application and reuse it; there is no benefit to creating a new Fory per request.
compatibleSet to true when your service needs to handle payloads from code that may have a different version of the same model — for example, when you deploy services independently and cannot guarantee that both sides update at the same time.
final fory = Fory(compatible: true);
When compatible: true:
namespace + typeName (or numeric id) to identify types.When compatible: false (default):
checkStructVersionRelevant only when compatible: false. When true, Fory validates that the schema version in the payload matches the one the receiver knows about, catching accidental schema mismatches at runtime.
final fory = Fory( compatible: false, checkStructVersion: true, // default );
This option has no effect when compatible: true.
maxDepthLimits how deeply nested an object graph can be. Increase this if you have legitimately deep trees; lower it to reject unexpectedly deep payloads fast.
final fory = Fory(maxDepth: 128);
maxCollectionSizeMaximum number of elements accepted in any single list, set, or map field. Prevents runaway memory allocation from malformed messages.
final fory = Fory(maxCollectionSize: 100000);
maxBinarySizeMaximum number of bytes accepted for any single binary blob field.
final fory = Fory(maxBinarySize: 8 * 1024 * 1024);
| Option | Default |
|---|---|
compatible | false |
checkStructVersion | true |
maxDepth | 256 |
maxCollectionSize | 1 048 576 |
maxBinarySize | 64 MiB |
When Fory is used to communicate between services written in different languages:
compatible: true on all sides if any side needs schema evolution.namespace + typeName pairs on every side.compatible setting on both the writing and reading side — mismatching modes will fail.