This is an automated email from the ASF dual-hosted git repository.

chaokunyang pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/fory.git


The following commit(s) were added to refs/heads/main by this push:
     new 8c56e66d6 feat(rust): add rust profiler for serialization (#2588)
8c56e66d6 is described below

commit 8c56e66d665293514c58bab4f500b044bf4e2e5c
Author: Shawn Yang <[email protected]>
AuthorDate: Mon Sep 8 13:22:09 2025 +0800

    feat(rust): add rust profiler for serialization (#2588)
    
    <!--
    **Thanks for contributing to Fory.**
    
    **If this is your first time opening a PR on fory, you can refer to
    
[CONTRIBUTING.md](https://github.com/apache/fory/blob/main/CONTRIBUTING.md).**
    
    Contribution Checklist
    
    - The **Apache Fory** community has requirements on the naming of pr
    titles. You can also find instructions in
    [CONTRIBUTING.md](https://github.com/apache/fory/blob/main/CONTRIBUTING.md).
    
    - Fory has a strong focus on performance. If the PR you submit will have
    an impact on performance, please benchmark it first and provide the
    benchmark result here.
    -->
    
    ## Why?
    
    <!-- Describe the purpose of this PR. -->
    
    ## What does this PR do?
    
    <!-- Describe the details of this PR. -->
    
    ## Related issues
    
    <!--
    Is there any related issue? If this PR closes them you say say
    fix/closes:
    
    - #xxxx0
    - #xxxx1
    - Fixes #xxxx2
    -->
    
    ## Does this PR introduce any user-facing change?
    
    <!--
    If any user-facing interface changes, please [open an
    issue](https://github.com/apache/fory/issues/new/choose) describing the
    need to do so and update the document if necessary.
    
    Delete section if not applicable.
    -->
    
    - [ ] Does this PR introduce any public API change?
    - [ ] Does this PR introduce any binary protocol compatibility change?
    
    ## Benchmark
    
    <!--
    When the PR has an impact on performance (if you don't know whether the
    PR will have an impact on performance, you can submit the PR first, and
    if it will have impact on performance, the code reviewer will explain
    it), be sure to attach a benchmark data here.
    
    Delete section if not applicable.
    -->
---
 rust/README.md                                    |   4 +-
 rust/benches/Cargo.toml                           |   3 +-
 rust/benches/README.md                            |   8 +-
 rust/benches/src/lib.rs                           |  56 ++++----
 rust/benches/src/main.rs                          | 163 +++++++++++++++++-----
 rust/benches/src/models/complex.rs                |  82 +++++------
 rust/benches/src/models/medium.rs                 |  30 ++--
 rust/benches/src/models/realworld.rs              |  58 ++++----
 rust/benches/src/models/simple.rs                 |   4 +-
 rust/benches/src/serializers/{fury.rs => fory.rs} |  40 +++---
 rust/benches/src/serializers/json.rs              |   2 +-
 rust/benches/src/serializers/mod.rs               |   2 +-
 rust/benches/src/serializers/protobuf.rs          |  74 +++++-----
 13 files changed, 312 insertions(+), 214 deletions(-)

diff --git a/rust/README.md b/rust/README.md
index 13043cd59..789dacce3 100644
--- a/rust/README.md
+++ b/rust/README.md
@@ -238,8 +238,8 @@ We welcome contributions! Please see our [Contributing 
Guide](../CONTRIBUTING.md
 ## 📞 Support
 
 - **Documentation**: [docs.rs/fory](https://docs.rs/fory)
-- **Issues**: [GitHub Issues](https://github.com/apache/fury/issues)
-- **Discussions**: [GitHub 
Discussions](https://github.com/apache/fury/discussions)
+- **Issues**: [GitHub Issues](https://github.com/apache/fory/issues)
+- **Discussions**: [GitHub 
Discussions](https://github.com/apache/fory/discussions)
 
 ---
 
diff --git a/rust/benches/Cargo.toml b/rust/benches/Cargo.toml
index a4762ad74..e5d83c703 100644
--- a/rust/benches/Cargo.toml
+++ b/rust/benches/Cargo.toml
@@ -21,7 +21,7 @@ version = "0.1.0"
 edition = "2021"
 
 [[bin]]
-name = "fury_profiler"
+name = "fory_profiler"
 path = "src/main.rs"
 
 [[bench]]
@@ -40,6 +40,7 @@ prost = "0.12"
 prost-types = "0.12"
 rand = "0.8"
 criterion = "0.5"
+clap = { version = "4.0", features = ["derive"] }
 
 [build-dependencies]
 prost-build = "0.12"
diff --git a/rust/benches/README.md b/rust/benches/README.md
index 909cc5064..53108cc3a 100644
--- a/rust/benches/README.md
+++ b/rust/benches/README.md
@@ -1,5 +1,11 @@
 ## How to generate flamegraph
 
 ```bash
-cargo flamegraph --bin fury_profiler
+cargo flamegraph --bin fory_profiler -- --operation deserialize --serializer 
fory
+```
+
+## How to run benchmarks
+
+```bash
+cargo bench
 ```
diff --git a/rust/benches/src/lib.rs b/rust/benches/src/lib.rs
index 4d956129f..7cae1a80e 100644
--- a/rust/benches/src/lib.rs
+++ b/rust/benches/src/lib.rs
@@ -34,11 +34,11 @@ use models::{
     TestDataGenerator,
 };
 use serializers::{
-    fury::FurySerializer, json::JsonSerializer, protobuf::ProtobufSerializer, 
Serializer,
+    fory::ForySerializer, json::JsonSerializer, protobuf::ProtobufSerializer, 
Serializer,
 };
 
 pub fn run_serialization_benchmarks(c: &mut Criterion) {
-    let fury_serializer = FurySerializer::new();
+    let fory_serializer = ForySerializer::new();
     let protobuf_serializer = ProtobufSerializer::new();
     let json_serializer = JsonSerializer::new();
 
@@ -46,7 +46,7 @@ pub fn run_serialization_benchmarks(c: &mut Criterion) {
     run_benchmark_group::<SimpleStruct>(
         c,
         "simple_struct",
-        &fury_serializer,
+        &fory_serializer,
         &protobuf_serializer,
         &json_serializer,
     );
@@ -55,7 +55,7 @@ pub fn run_serialization_benchmarks(c: &mut Criterion) {
     run_benchmark_group::<SimpleList>(
         c,
         "simple_list",
-        &fury_serializer,
+        &fory_serializer,
         &protobuf_serializer,
         &json_serializer,
     );
@@ -64,7 +64,7 @@ pub fn run_serialization_benchmarks(c: &mut Criterion) {
     run_benchmark_group::<SimpleMap>(
         c,
         "simple_map",
-        &fury_serializer,
+        &fory_serializer,
         &protobuf_serializer,
         &json_serializer,
     );
@@ -73,7 +73,7 @@ pub fn run_serialization_benchmarks(c: &mut Criterion) {
     run_benchmark_group::<Person>(
         c,
         "person",
-        &fury_serializer,
+        &fory_serializer,
         &protobuf_serializer,
         &json_serializer,
     );
@@ -82,7 +82,7 @@ pub fn run_serialization_benchmarks(c: &mut Criterion) {
     run_benchmark_group::<Company>(
         c,
         "company",
-        &fury_serializer,
+        &fory_serializer,
         &protobuf_serializer,
         &json_serializer,
     );
@@ -91,7 +91,7 @@ pub fn run_serialization_benchmarks(c: &mut Criterion) {
     run_benchmark_group::<ECommerceData>(
         c,
         "ecommerce_data",
-        &fury_serializer,
+        &fory_serializer,
         &protobuf_serializer,
         &json_serializer,
     );
@@ -100,7 +100,7 @@ pub fn run_serialization_benchmarks(c: &mut Criterion) {
     run_benchmark_group::<SystemData>(
         c,
         "system_data",
-        &fury_serializer,
+        &fory_serializer,
         &protobuf_serializer,
         &json_serializer,
     );
@@ -109,12 +109,12 @@ pub fn run_serialization_benchmarks(c: &mut Criterion) {
 fn run_benchmark_group<T>(
     c: &mut Criterion,
     group_name: &str,
-    fury_serializer: &FurySerializer,
+    fory_serializer: &ForySerializer,
     protobuf_serializer: &ProtobufSerializer,
     json_serializer: &JsonSerializer,
 ) where
     T: TestDataGenerator<Data = T> + Clone + PartialEq,
-    FurySerializer: Serializer<T>,
+    ForySerializer: Serializer<T>,
     ProtobufSerializer: Serializer<T>,
     JsonSerializer: Serializer<T>,
 {
@@ -125,68 +125,68 @@ fn run_benchmark_group<T>(
     let medium_data = T::generate_medium();
     let large_data = T::generate_large();
 
-    // Fury serialization benchmarks
+    // Fory serialization benchmarks
     group.bench_with_input(
-        BenchmarkId::new("fury_serialize", "small"),
+        BenchmarkId::new("fory_serialize", "small"),
         &small_data,
         |b, data| {
             b.iter(|| {
-                let _ = 
black_box(fury_serializer.serialize(black_box(data)).unwrap());
+                let _ = 
black_box(fory_serializer.serialize(black_box(data)).unwrap());
             })
         },
     );
 
     group.bench_with_input(
-        BenchmarkId::new("fury_serialize", "medium"),
+        BenchmarkId::new("fory_serialize", "medium"),
         &medium_data,
         |b, data| {
             b.iter(|| {
-                let _ = 
black_box(fury_serializer.serialize(black_box(data)).unwrap());
+                let _ = 
black_box(fory_serializer.serialize(black_box(data)).unwrap());
             })
         },
     );
 
     group.bench_with_input(
-        BenchmarkId::new("fury_serialize", "large"),
+        BenchmarkId::new("fory_serialize", "large"),
         &large_data,
         |b, data| {
             b.iter(|| {
-                let _ = 
black_box(fury_serializer.serialize(black_box(data)).unwrap());
+                let _ = 
black_box(fory_serializer.serialize(black_box(data)).unwrap());
             })
         },
     );
 
-    // Fury deserialization benchmarks
-    let small_serialized = fury_serializer.serialize(&small_data).unwrap();
-    let medium_serialized = fury_serializer.serialize(&medium_data).unwrap();
-    let large_serialized = fury_serializer.serialize(&large_data).unwrap();
+    // Fory deserialization benchmarks
+    let small_serialized = fory_serializer.serialize(&small_data).unwrap();
+    let medium_serialized = fory_serializer.serialize(&medium_data).unwrap();
+    let large_serialized = fory_serializer.serialize(&large_data).unwrap();
 
     group.bench_with_input(
-        BenchmarkId::new("fury_deserialize", "small"),
+        BenchmarkId::new("fory_deserialize", "small"),
         &small_serialized,
         |b, data| {
             b.iter(|| {
-                let _ = 
black_box(fury_serializer.deserialize(black_box(data)).unwrap());
+                let _ = 
black_box(fory_serializer.deserialize(black_box(data)).unwrap());
             })
         },
     );
 
     group.bench_with_input(
-        BenchmarkId::new("fury_deserialize", "medium"),
+        BenchmarkId::new("fory_deserialize", "medium"),
         &medium_serialized,
         |b, data| {
             b.iter(|| {
-                let _ = 
black_box(fury_serializer.deserialize(black_box(data)).unwrap());
+                let _ = 
black_box(fory_serializer.deserialize(black_box(data)).unwrap());
             })
         },
     );
 
     group.bench_with_input(
-        BenchmarkId::new("fury_deserialize", "large"),
+        BenchmarkId::new("fory_deserialize", "large"),
         &large_serialized,
         |b, data| {
             b.iter(|| {
-                let _ = 
black_box(fury_serializer.deserialize(black_box(data)).unwrap());
+                let _ = 
black_box(fory_serializer.deserialize(black_box(data)).unwrap());
             })
         },
     );
diff --git a/rust/benches/src/main.rs b/rust/benches/src/main.rs
index 2c1a104c6..2d740088a 100644
--- a/rust/benches/src/main.rs
+++ b/rust/benches/src/main.rs
@@ -15,51 +15,142 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use fory_benchmarks::models::simple::SimpleStruct;
+use clap::{Parser, ValueEnum};
+use fory_benchmarks::models::complex::ECommerceData;
 use fory_benchmarks::models::TestDataGenerator;
-use fory_benchmarks::serializers::fury::FurySerializer;
+use fory_benchmarks::serializers::fory::ForySerializer;
+use fory_benchmarks::serializers::protobuf::ProtobufSerializer;
 use fory_benchmarks::serializers::Serializer;
 use std::hint::black_box;
 
-fn main() {
-    println!("Starting Fury deserialization profiling...");
-
-    // Initialize the Fury serializer
-    let fury_serializer = FurySerializer::new();
-
-    // Generate test data
-    let simple_struct = SimpleStruct::generate_small();
-    println!("Generated test struct: {:?}", simple_struct);
-
-    // Pre-serialize the data once
-    let serialized_data = fury_serializer.serialize(&simple_struct).unwrap();
-    println!("Serialized data size: {} bytes", serialized_data.len());
-
-    // Warm up - run a few iterations to get the code in cache
-    for _ in 0..1000 {
-        let _: SimpleStruct = black_box(
-            fury_serializer
-                .deserialize(black_box(&serialized_data))
-                .unwrap(),
-        );
+#[derive(Debug, Clone, Copy, ValueEnum)]
+pub enum Operation {
+    Serialize,
+    Deserialize,
+}
+
+#[derive(Debug, Clone, Copy, ValueEnum)]
+pub enum SerializerType {
+    Protobuf,
+    Fory,
+}
+
+#[derive(Parser)]
+#[command(name = "fory_profiler")]
+#[command(about = "A profiler for Fory and Protobuf serialization 
performance")]
+struct Cli {
+    /// The operation to perform
+    #[arg(short, long, value_enum)]
+    operation: Operation,
+
+    /// The serializer to use
+    #[arg(short, long, value_enum)]
+    serializer: SerializerType,
+
+    /// Number of iterations to run
+    #[arg(short, long, default_value = "10000000")]
+    iterations: usize,
+
+    /// Data size to use (small, medium, large)
+    #[arg(short, long, default_value = "large")]
+    data_size: String,
+}
+
+fn profile<T, S>(num_iterations: usize, data: &T, serializer: &S, operation: 
Operation)
+where
+    T: Clone,
+    S: Serializer<T>,
+{
+    match operation {
+        Operation::Serialize => {
+            println!(
+                "Starting serialization profiling with {} iterations...",
+                num_iterations
+            );
+
+            // Warm up - run a few iterations to get the code in cache
+            for _ in 0..1000 {
+                let _ = 
black_box(serializer.serialize(black_box(data)).unwrap());
+            }
+
+            println!("Warmup complete. Starting main profiling loop...");
+
+            // Main profiling loop
+            for i in 0..num_iterations {
+                let _ = 
black_box(serializer.serialize(black_box(data)).unwrap());
+
+                // Print progress every million iterations
+                if i % 1_000_000 == 0 && i > 0 {
+                    println!("Completed {} iterations", i);
+                }
+            }
+        }
+        Operation::Deserialize => {
+            println!(
+                "Starting deserialization profiling with {} iterations...",
+                num_iterations
+            );
+
+            // Pre-serialize the data once
+            let serialized_data = serializer.serialize(data).unwrap();
+            println!("Serialized data size: {} bytes", serialized_data.len());
+
+            // Warm up - run a few iterations to get the code in cache
+            for _ in 0..1000 {
+                let _: T = 
black_box(serializer.deserialize(black_box(&serialized_data)).unwrap());
+            }
+
+            println!("Warmup complete. Starting main profiling loop...");
+
+            // Main profiling loop
+            for i in 0..num_iterations {
+                let _: T = 
black_box(serializer.deserialize(black_box(&serialized_data)).unwrap());
+
+                // Print progress every million iterations
+                if i % 1_000_000 == 0 && i > 0 {
+                    println!("Completed {} iterations", i);
+                }
+            }
+        }
     }
 
-    println!("Warmup complete. Starting main profiling loop...");
+    println!("Profiling complete! Ran {} iterations", num_iterations);
+}
+
+fn main() {
+    let cli = Cli::parse();
 
-    // Main profiling loop - run many iterations to get good profiling data
-    const ITERATIONS: usize = 10_000_000;
-    for i in 0..ITERATIONS {
-        let _: SimpleStruct = black_box(
-            fury_serializer
-                .deserialize(black_box(&serialized_data))
-                .unwrap(),
-        );
+    println!("Starting profiling...");
+    println!("Operation: {:?}", cli.operation);
+    println!("Serializer: {:?}", cli.serializer);
+    println!("Iterations: {}", cli.iterations);
+    println!("Data size: {}", cli.data_size);
 
-        // Print progress every million iterations
-        if i % 1_000_000 == 0 && i > 0 {
-            println!("Completed {} iterations", i);
+    // Generate data based on size parameter
+    let data = match cli.data_size.as_str() {
+        "small" => ECommerceData::generate_small(),
+        "medium" => ECommerceData::generate_medium(),
+        "large" => ECommerceData::generate_large(),
+        _ => {
+            eprintln!(
+                "Invalid data size: {}. Using 'large' instead.",
+                cli.data_size
+            );
+            ECommerceData::generate_large()
+        }
+    };
+
+    // Create serializer based on type
+    match cli.serializer {
+        SerializerType::Protobuf => {
+            let serializer = ProtobufSerializer::new();
+            profile(cli.iterations, &data, &serializer, cli.operation);
+        }
+        SerializerType::Fory => {
+            let serializer = ForySerializer::new();
+            profile(cli.iterations, &data, &serializer, cli.operation);
         }
     }
 
-    println!("Profiling complete! Ran {} iterations", ITERATIONS);
+    println!("\nProfiling completed!");
 }
diff --git a/rust/benches/src/models/complex.rs 
b/rust/benches/src/models/complex.rs
index 0b66db9dc..10e3278c9 100644
--- a/rust/benches/src/models/complex.rs
+++ b/rust/benches/src/models/complex.rs
@@ -21,9 +21,9 @@ use fory_derive::Fory;
 use serde::{Deserialize, Serialize};
 use std::collections::HashMap;
 
-// Fury models
+// Fory models
 #[derive(Fory, Debug, Clone, PartialEq, Default)]
-pub struct FuryProduct {
+pub struct ForyProduct {
     pub id: String,
     pub name: String,
     pub price: f64,
@@ -32,15 +32,15 @@ pub struct FuryProduct {
 }
 
 #[derive(Fory, Debug, Clone, PartialEq, Default)]
-pub struct FuryOrderItem {
-    pub product: FuryProduct,
+pub struct ForyOrderItem {
+    pub product: ForyProduct,
     pub quantity: i32,
     pub unit_price: f64,
     pub customizations: HashMap<String, String>,
 }
 
 #[derive(Fory, Debug, Clone, PartialEq, Default)]
-pub struct FuryCustomer {
+pub struct ForyCustomer {
     pub id: String,
     pub name: String,
     pub email: String,
@@ -50,10 +50,10 @@ pub struct FuryCustomer {
 }
 
 #[derive(Fory, Debug, Clone, PartialEq, Default)]
-pub struct FuryOrder {
+pub struct ForyOrder {
     pub id: String,
-    pub customer: FuryCustomer,
-    pub items: Vec<FuryOrderItem>,
+    pub customer: ForyCustomer,
+    pub items: Vec<ForyOrderItem>,
     pub total_amount: f64,
     pub status: String,
     pub order_date: NaiveDateTime,
@@ -62,10 +62,10 @@ pub struct FuryOrder {
 
 #[derive(Fory, Debug, Clone, PartialEq, Default)]
 pub struct ECommerceData {
-    pub orders: Vec<FuryOrder>,
-    pub customers: Vec<FuryCustomer>,
-    pub products: Vec<FuryProduct>,
-    pub order_lookup: HashMap<String, FuryOrder>,
+    pub orders: Vec<ForyOrder>,
+    pub customers: Vec<ForyCustomer>,
+    pub products: Vec<ForyProduct>,
+    pub order_lookup: HashMap<String, ForyOrder>,
 }
 
 // Serde models
@@ -119,7 +119,7 @@ impl TestDataGenerator for ECommerceData {
     type Data = ECommerceData;
 
     fn generate_small() -> Self::Data {
-        let product = FuryProduct {
+        let product = ForyProduct {
             id: "prod_1".to_string(),
             name: "Laptop".to_string(),
             price: 999.99,
@@ -130,7 +130,7 @@ impl TestDataGenerator for ECommerceData {
             ]),
         };
 
-        let customer = FuryCustomer {
+        let customer = ForyCustomer {
             id: "cust_1".to_string(),
             name: "John Doe".to_string(),
             email: "[email protected]".to_string(),
@@ -142,14 +142,14 @@ impl TestDataGenerator for ECommerceData {
             member_since: DateTime::from_timestamp(1640995200, 
0).unwrap().naive_utc(),
         };
 
-        let order_item = FuryOrderItem {
+        let order_item = ForyOrderItem {
             product: product.clone(),
             quantity: 1,
             unit_price: 999.99,
             customizations: HashMap::from([("color".to_string(), 
"black".to_string())]),
         };
 
-        let order = FuryOrder {
+        let order = ForyOrder {
             id: "order_1".to_string(),
             customer: customer.clone(),
             items: vec![order_item],
@@ -178,7 +178,7 @@ impl TestDataGenerator for ECommerceData {
 
         // Generate 20 products
         for i in 1..=20 {
-            let product = FuryProduct {
+            let product = ForyProduct {
                 id: format!("prod_{}", i),
                 name: generate_random_string(30),
                 price: (i as f64) * 50.0,
@@ -196,7 +196,7 @@ impl TestDataGenerator for ECommerceData {
 
         // Generate 10 customers
         for i in 1..=10 {
-            let customer = FuryCustomer {
+            let customer = ForyCustomer {
                 id: format!("cust_{}", i),
                 name: generate_random_string(40),
                 email: format!("user{}@example.com", i),
@@ -225,7 +225,7 @@ impl TestDataGenerator for ECommerceData {
                 let unit_price = product.price;
                 total += unit_price * quantity as f64;
 
-                let item = FuryOrderItem {
+                let item = ForyOrderItem {
                     product,
                     quantity,
                     unit_price,
@@ -240,7 +240,7 @@ impl TestDataGenerator for ECommerceData {
                 items.push(item);
             }
 
-            let order = FuryOrder {
+            let order = ForyOrder {
                 id: format!("order_{}", i),
                 customer,
                 items,
@@ -280,7 +280,7 @@ impl TestDataGenerator for ECommerceData {
 
         // Generate 100 products
         for i in 1..=100 {
-            let product = FuryProduct {
+            let product = ForyProduct {
                 id: format!("prod_{}", i),
                 name: generate_random_string(50),
                 price: (i as f64) * 25.0,
@@ -298,7 +298,7 @@ impl TestDataGenerator for ECommerceData {
 
         // Generate 50 customers
         for i in 1..=50 {
-            let customer = FuryCustomer {
+            let customer = ForyCustomer {
                 id: format!("cust_{}", i),
                 name: generate_random_string(60),
                 email: format!("user{}@example.com", i),
@@ -327,7 +327,7 @@ impl TestDataGenerator for ECommerceData {
                 let unit_price = product.price;
                 total += unit_price * quantity as f64;
 
-                let item = FuryOrderItem {
+                let item = ForyOrderItem {
                     product,
                     quantity,
                     unit_price,
@@ -342,7 +342,7 @@ impl TestDataGenerator for ECommerceData {
                 items.push(item);
             }
 
-            let order = FuryOrder {
+            let order = ForyOrder {
                 id: format!("order_{}", i),
                 customer,
                 items,
@@ -376,8 +376,8 @@ impl TestDataGenerator for ECommerceData {
 }
 
 // Conversion functions for Serde
-impl From<FuryProduct> for SerdeProduct {
-    fn from(f: FuryProduct) -> Self {
+impl From<ForyProduct> for SerdeProduct {
+    fn from(f: ForyProduct) -> Self {
         SerdeProduct {
             id: f.id,
             name: f.name,
@@ -388,8 +388,8 @@ impl From<FuryProduct> for SerdeProduct {
     }
 }
 
-impl From<FuryOrderItem> for SerdeOrderItem {
-    fn from(f: FuryOrderItem) -> Self {
+impl From<ForyOrderItem> for SerdeOrderItem {
+    fn from(f: ForyOrderItem) -> Self {
         SerdeOrderItem {
             product: f.product.into(),
             quantity: f.quantity,
@@ -399,8 +399,8 @@ impl From<FuryOrderItem> for SerdeOrderItem {
     }
 }
 
-impl From<FuryCustomer> for SerdeCustomer {
-    fn from(f: FuryCustomer) -> Self {
+impl From<ForyCustomer> for SerdeCustomer {
+    fn from(f: ForyCustomer) -> Self {
         SerdeCustomer {
             id: f.id,
             name: f.name,
@@ -412,8 +412,8 @@ impl From<FuryCustomer> for SerdeCustomer {
     }
 }
 
-impl From<FuryOrder> for SerdeOrder {
-    fn from(f: FuryOrder) -> Self {
+impl From<ForyOrder> for SerdeOrder {
+    fn from(f: ForyOrder) -> Self {
         SerdeOrder {
             id: f.id,
             customer: f.customer.into(),
@@ -441,10 +441,10 @@ impl From<ECommerceData> for SerdeECommerceData {
     }
 }
 
-// Reverse conversions from Serde to Fury
-impl From<SerdeProduct> for FuryProduct {
+// Reverse conversions from Serde to Fory
+impl From<SerdeProduct> for ForyProduct {
     fn from(s: SerdeProduct) -> Self {
-        FuryProduct {
+        ForyProduct {
             id: s.id,
             name: s.name,
             price: s.price,
@@ -454,9 +454,9 @@ impl From<SerdeProduct> for FuryProduct {
     }
 }
 
-impl From<SerdeOrderItem> for FuryOrderItem {
+impl From<SerdeOrderItem> for ForyOrderItem {
     fn from(s: SerdeOrderItem) -> Self {
-        FuryOrderItem {
+        ForyOrderItem {
             product: s.product.into(),
             quantity: s.quantity,
             unit_price: s.unit_price,
@@ -465,9 +465,9 @@ impl From<SerdeOrderItem> for FuryOrderItem {
     }
 }
 
-impl From<SerdeCustomer> for FuryCustomer {
+impl From<SerdeCustomer> for ForyCustomer {
     fn from(s: SerdeCustomer) -> Self {
-        FuryCustomer {
+        ForyCustomer {
             id: s.id,
             name: s.name,
             email: s.email,
@@ -478,9 +478,9 @@ impl From<SerdeCustomer> for FuryCustomer {
     }
 }
 
-impl From<SerdeOrder> for FuryOrder {
+impl From<SerdeOrder> for ForyOrder {
     fn from(s: SerdeOrder) -> Self {
-        FuryOrder {
+        ForyOrder {
             id: s.id,
             customer: s.customer.into(),
             items: s.items.into_iter().map(|i| i.into()).collect(),
diff --git a/rust/benches/src/models/medium.rs 
b/rust/benches/src/models/medium.rs
index e5a72bbe3..c47444bf3 100644
--- a/rust/benches/src/models/medium.rs
+++ b/rust/benches/src/models/medium.rs
@@ -21,9 +21,9 @@ use fory_derive::Fory;
 use serde::{Deserialize, Serialize};
 use std::collections::HashMap;
 
-// Fury models
+// Fory models
 #[derive(Fory, Debug, Clone, PartialEq, Default)]
-pub struct FuryAddress {
+pub struct ForyAddress {
     pub street: String,
     pub city: String,
     pub country: String,
@@ -34,7 +34,7 @@ pub struct FuryAddress {
 pub struct Person {
     pub name: String,
     pub age: i32,
-    pub address: FuryAddress,
+    pub address: ForyAddress,
     pub hobbies: Vec<String>,
     pub metadata: HashMap<String, String>,
     pub created_at: NaiveDateTime,
@@ -44,7 +44,7 @@ pub struct Person {
 pub struct Company {
     pub name: String,
     pub employees: Vec<Person>,
-    pub offices: HashMap<String, FuryAddress>,
+    pub offices: HashMap<String, ForyAddress>,
     pub is_public: bool,
 }
 
@@ -82,7 +82,7 @@ impl TestDataGenerator for Person {
         Person {
             name: "John Doe".to_string(),
             age: 30,
-            address: FuryAddress {
+            address: ForyAddress {
                 street: "123 Main St".to_string(),
                 city: "New York".to_string(),
                 country: "USA".to_string(),
@@ -101,7 +101,7 @@ impl TestDataGenerator for Person {
         Person {
             name: generate_random_string(30),
             age: 35,
-            address: FuryAddress {
+            address: ForyAddress {
                 street: generate_random_string(50),
                 city: generate_random_string(20),
                 country: generate_random_string(15),
@@ -123,7 +123,7 @@ impl TestDataGenerator for Person {
         Person {
             name: generate_random_string(100),
             age: 40,
-            address: FuryAddress {
+            address: ForyAddress {
                 street: generate_random_string(100),
                 city: generate_random_string(50),
                 country: generate_random_string(30),
@@ -151,7 +151,7 @@ impl TestDataGenerator for Company {
             employees: vec![Person::generate_small()],
             offices: HashMap::from([(
                 "HQ".to_string(),
-                FuryAddress {
+                ForyAddress {
                     street: "456 Tech Ave".to_string(),
                     city: "San Francisco".to_string(),
                     country: "USA".to_string(),
@@ -174,7 +174,7 @@ impl TestDataGenerator for Company {
         for i in 1..=5 {
             offices.insert(
                 format!("Office_{}", i),
-                FuryAddress {
+                ForyAddress {
                     street: generate_random_string(50),
                     city: generate_random_string(20),
                     country: generate_random_string(15),
@@ -203,7 +203,7 @@ impl TestDataGenerator for Company {
         for i in 1..=20 {
             offices.insert(
                 format!("Office_{}", i),
-                FuryAddress {
+                ForyAddress {
                     street: generate_random_string(100),
                     city: generate_random_string(50),
                     country: generate_random_string(30),
@@ -222,8 +222,8 @@ impl TestDataGenerator for Company {
 }
 
 // Conversion functions for Serde
-impl From<FuryAddress> for SerdeAddress {
-    fn from(f: FuryAddress) -> Self {
+impl From<ForyAddress> for SerdeAddress {
+    fn from(f: ForyAddress) -> Self {
         SerdeAddress {
             street: f.street,
             city: f.city,
@@ -257,10 +257,10 @@ impl From<Company> for SerdeCompany {
     }
 }
 
-// Reverse conversions from Serde to Fury
-impl From<SerdeAddress> for FuryAddress {
+// Reverse conversions from Serde to Fory
+impl From<SerdeAddress> for ForyAddress {
     fn from(s: SerdeAddress) -> Self {
-        FuryAddress {
+        ForyAddress {
             street: s.street,
             city: s.city,
             country: s.country,
diff --git a/rust/benches/src/models/realworld.rs 
b/rust/benches/src/models/realworld.rs
index 01f773023..73f29f8f5 100644
--- a/rust/benches/src/models/realworld.rs
+++ b/rust/benches/src/models/realworld.rs
@@ -21,9 +21,9 @@ use fory_derive::Fory;
 use serde::{Deserialize, Serialize};
 use std::collections::HashMap;
 
-// Fury models
+// Fory models
 #[derive(Fory, Debug, Clone, PartialEq, Default)]
-pub struct FuryLogEntry {
+pub struct ForyLogEntry {
     pub id: String,
     pub level: i32, // 0=DEBUG, 1=INFO, 2=WARN, 3=ERROR, 4=FATAL
     pub message: String,
@@ -35,7 +35,7 @@ pub struct FuryLogEntry {
 }
 
 #[derive(Fory, Debug, Clone, PartialEq, Default)]
-pub struct FuryUserProfile {
+pub struct ForyUserProfile {
     pub user_id: String,
     pub username: String,
     pub email: String,
@@ -46,7 +46,7 @@ pub struct FuryUserProfile {
 }
 
 #[derive(Fory, Debug, Clone, PartialEq, Default)]
-pub struct FuryAPIMetrics {
+pub struct ForyAPIMetrics {
     pub endpoint: String,
     pub request_count: i64,
     pub avg_response_time: f64,
@@ -57,9 +57,9 @@ pub struct FuryAPIMetrics {
 
 #[derive(Fory, Debug, Clone, PartialEq, Default)]
 pub struct SystemData {
-    pub logs: Vec<FuryLogEntry>,
-    pub users: Vec<FuryUserProfile>,
-    pub metrics: Vec<FuryAPIMetrics>,
+    pub logs: Vec<ForyLogEntry>,
+    pub users: Vec<ForyUserProfile>,
+    pub metrics: Vec<ForyAPIMetrics>,
     pub system_info: HashMap<String, String>,
 }
 
@@ -109,7 +109,7 @@ impl TestDataGenerator for SystemData {
     type Data = SystemData;
 
     fn generate_small() -> Self::Data {
-        let log = FuryLogEntry {
+        let log = ForyLogEntry {
             id: "log_1".to_string(),
             level: 1, // INFO
             message: "User login successful".to_string(),
@@ -123,7 +123,7 @@ impl TestDataGenerator for SystemData {
             duration_ms: 45.2,
         };
 
-        let user = FuryUserProfile {
+        let user = ForyUserProfile {
             user_id: "user_123".to_string(),
             username: "johndoe".to_string(),
             email: "[email protected]".to_string(),
@@ -136,7 +136,7 @@ impl TestDataGenerator for SystemData {
             is_active: true,
         };
 
-        let metric = FuryAPIMetrics {
+        let metric = ForyAPIMetrics {
             endpoint: "/api/users".to_string(),
             request_count: 1000,
             avg_response_time: 150.5,
@@ -167,7 +167,7 @@ impl TestDataGenerator for SystemData {
 
         // Generate 50 log entries
         for i in 1..=50 {
-            let log = FuryLogEntry {
+            let log = ForyLogEntry {
                 id: format!("log_{}", i),
                 level: i % 5,
                 message: generate_random_string(100),
@@ -190,7 +190,7 @@ impl TestDataGenerator for SystemData {
 
         // Generate 20 users
         for i in 1..=20 {
-            let user = FuryUserProfile {
+            let user = ForyUserProfile {
                 user_id: format!("user_{}", i),
                 username: generate_random_string(20),
                 email: format!("user{}@example.com", i),
@@ -212,7 +212,7 @@ impl TestDataGenerator for SystemData {
 
         // Generate 10 metrics
         for i in 1..=10 {
-            let metric = FuryAPIMetrics {
+            let metric = ForyAPIMetrics {
                 endpoint: format!("/api/endpoint_{}", i),
                 request_count: (i * 1000) as i64,
                 avg_response_time: (i as f64) * 50.0,
@@ -252,7 +252,7 @@ impl TestDataGenerator for SystemData {
 
         // Generate 500 log entries
         for i in 1..=500 {
-            let log = FuryLogEntry {
+            let log = ForyLogEntry {
                 id: format!("log_{}", i),
                 level: i % 5,
                 message: generate_random_string(200),
@@ -275,7 +275,7 @@ impl TestDataGenerator for SystemData {
 
         // Generate 100 users
         for i in 1..=100 {
-            let user = FuryUserProfile {
+            let user = ForyUserProfile {
                 user_id: format!("user_{}", i),
                 username: generate_random_string(30),
                 email: format!("user{}@example.com", i),
@@ -297,7 +297,7 @@ impl TestDataGenerator for SystemData {
 
         // Generate 50 metrics
         for i in 1..=50 {
-            let metric = FuryAPIMetrics {
+            let metric = ForyAPIMetrics {
                 endpoint: format!("/api/endpoint_{}", i),
                 request_count: (i * 2000) as i64,
                 avg_response_time: (i as f64) * 25.0,
@@ -332,8 +332,8 @@ impl TestDataGenerator for SystemData {
 }
 
 // Conversion functions for Serde
-impl From<FuryLogEntry> for SerdeLogEntry {
-    fn from(f: FuryLogEntry) -> Self {
+impl From<ForyLogEntry> for SerdeLogEntry {
+    fn from(f: ForyLogEntry) -> Self {
         SerdeLogEntry {
             id: f.id,
             level: f.level,
@@ -347,8 +347,8 @@ impl From<FuryLogEntry> for SerdeLogEntry {
     }
 }
 
-impl From<FuryUserProfile> for SerdeUserProfile {
-    fn from(f: FuryUserProfile) -> Self {
+impl From<ForyUserProfile> for SerdeUserProfile {
+    fn from(f: ForyUserProfile) -> Self {
         SerdeUserProfile {
             user_id: f.user_id,
             username: f.username,
@@ -361,8 +361,8 @@ impl From<FuryUserProfile> for SerdeUserProfile {
     }
 }
 
-impl From<FuryAPIMetrics> for SerdeAPIMetrics {
-    fn from(f: FuryAPIMetrics) -> Self {
+impl From<ForyAPIMetrics> for SerdeAPIMetrics {
+    fn from(f: ForyAPIMetrics) -> Self {
         SerdeAPIMetrics {
             endpoint: f.endpoint,
             request_count: f.request_count,
@@ -385,10 +385,10 @@ impl From<SystemData> for SerdeSystemData {
     }
 }
 
-// Reverse conversions from Serde to Fury
-impl From<SerdeLogEntry> for FuryLogEntry {
+// Reverse conversions from Serde to Fory
+impl From<SerdeLogEntry> for ForyLogEntry {
     fn from(s: SerdeLogEntry) -> Self {
-        FuryLogEntry {
+        ForyLogEntry {
             id: s.id,
             level: s.level,
             message: s.message,
@@ -401,9 +401,9 @@ impl From<SerdeLogEntry> for FuryLogEntry {
     }
 }
 
-impl From<SerdeUserProfile> for FuryUserProfile {
+impl From<SerdeUserProfile> for ForyUserProfile {
     fn from(s: SerdeUserProfile) -> Self {
-        FuryUserProfile {
+        ForyUserProfile {
             user_id: s.user_id,
             username: s.username,
             email: s.email,
@@ -415,9 +415,9 @@ impl From<SerdeUserProfile> for FuryUserProfile {
     }
 }
 
-impl From<SerdeAPIMetrics> for FuryAPIMetrics {
+impl From<SerdeAPIMetrics> for ForyAPIMetrics {
     fn from(s: SerdeAPIMetrics) -> Self {
-        FuryAPIMetrics {
+        ForyAPIMetrics {
             endpoint: s.endpoint,
             request_count: s.request_count,
             avg_response_time: s.avg_response_time,
diff --git a/rust/benches/src/models/simple.rs 
b/rust/benches/src/models/simple.rs
index 7323ac617..18bc0a6e6 100644
--- a/rust/benches/src/models/simple.rs
+++ b/rust/benches/src/models/simple.rs
@@ -20,7 +20,7 @@ use fory_derive::Fory;
 use serde::{Deserialize, Serialize};
 use std::collections::HashMap;
 
-// Fury models
+// Fory models
 #[derive(Fory, Debug, Clone, PartialEq, Default)]
 pub struct SimpleStruct {
     pub id: i32,
@@ -199,7 +199,7 @@ impl From<SimpleMap> for SerdeSimpleMap {
     }
 }
 
-// Reverse conversions from Serde to Fury
+// Reverse conversions from Serde to Fory
 impl From<SerdeSimpleStruct> for SimpleStruct {
     fn from(s: SerdeSimpleStruct) -> Self {
         SimpleStruct {
diff --git a/rust/benches/src/serializers/fury.rs 
b/rust/benches/src/serializers/fory.rs
similarity index 78%
rename from rust/benches/src/serializers/fury.rs
rename to rust/benches/src/serializers/fory.rs
index f8e672be7..dee13c50f 100644
--- a/rust/benches/src/serializers/fury.rs
+++ b/rust/benches/src/serializers/fory.rs
@@ -15,19 +15,19 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use crate::models::complex::{ECommerceData, FuryCustomer, FuryOrder, 
FuryOrderItem, FuryProduct};
-use crate::models::medium::{Company, FuryAddress, Person};
-use crate::models::realworld::{FuryAPIMetrics, FuryLogEntry, FuryUserProfile, 
SystemData};
+use crate::models::complex::{ECommerceData, ForyCustomer, ForyOrder, 
ForyOrderItem, ForyProduct};
+use crate::models::medium::{Company, ForyAddress, Person};
+use crate::models::realworld::{ForyAPIMetrics, ForyLogEntry, ForyUserProfile, 
SystemData};
 use crate::models::simple::{SimpleList, SimpleMap, SimpleStruct};
 use crate::serializers::Serializer;
 use fory_core::fory::Fory;
 
 #[derive(Default)]
-pub struct FurySerializer {
+pub struct ForySerializer {
     fory: Fory,
 }
 
-impl FurySerializer {
+impl ForySerializer {
     pub fn new() -> Self {
         let mut fory = Fory::default();
 
@@ -37,28 +37,28 @@ impl FurySerializer {
         fory.register::<SimpleMap>(102);
 
         // Register medium types
-        fory.register::<FuryAddress>(200);
+        fory.register::<ForyAddress>(200);
         fory.register::<Person>(201);
         fory.register::<Company>(202);
 
         // Register complex types
-        fory.register::<FuryProduct>(300);
-        fory.register::<FuryOrderItem>(301);
-        fory.register::<FuryCustomer>(302);
-        fory.register::<FuryOrder>(303);
+        fory.register::<ForyProduct>(300);
+        fory.register::<ForyOrderItem>(301);
+        fory.register::<ForyCustomer>(302);
+        fory.register::<ForyOrder>(303);
         fory.register::<ECommerceData>(304);
 
         // Register realworld types
-        fory.register::<FuryLogEntry>(400);
-        fory.register::<FuryUserProfile>(401);
-        fory.register::<FuryAPIMetrics>(402);
+        fory.register::<ForyLogEntry>(400);
+        fory.register::<ForyUserProfile>(401);
+        fory.register::<ForyAPIMetrics>(402);
         fory.register::<SystemData>(403);
 
         Self { fory }
     }
 }
 
-impl Serializer<SimpleStruct> for FurySerializer {
+impl Serializer<SimpleStruct> for ForySerializer {
     fn serialize(&self, data: &SimpleStruct) -> Result<Vec<u8>, Box<dyn 
std::error::Error>> {
         Ok(self.fory.serialize(data))
     }
@@ -68,7 +68,7 @@ impl Serializer<SimpleStruct> for FurySerializer {
     }
 }
 
-impl Serializer<SimpleList> for FurySerializer {
+impl Serializer<SimpleList> for ForySerializer {
     fn serialize(&self, data: &SimpleList) -> Result<Vec<u8>, Box<dyn 
std::error::Error>> {
         Ok(self.fory.serialize(data))
     }
@@ -78,7 +78,7 @@ impl Serializer<SimpleList> for FurySerializer {
     }
 }
 
-impl Serializer<SimpleMap> for FurySerializer {
+impl Serializer<SimpleMap> for ForySerializer {
     fn serialize(&self, data: &SimpleMap) -> Result<Vec<u8>, Box<dyn 
std::error::Error>> {
         Ok(self.fory.serialize(data))
     }
@@ -88,7 +88,7 @@ impl Serializer<SimpleMap> for FurySerializer {
     }
 }
 
-impl Serializer<Person> for FurySerializer {
+impl Serializer<Person> for ForySerializer {
     fn serialize(&self, data: &Person) -> Result<Vec<u8>, Box<dyn 
std::error::Error>> {
         Ok(self.fory.serialize(data))
     }
@@ -98,7 +98,7 @@ impl Serializer<Person> for FurySerializer {
     }
 }
 
-impl Serializer<Company> for FurySerializer {
+impl Serializer<Company> for ForySerializer {
     fn serialize(&self, data: &Company) -> Result<Vec<u8>, Box<dyn 
std::error::Error>> {
         Ok(self.fory.serialize(data))
     }
@@ -108,7 +108,7 @@ impl Serializer<Company> for FurySerializer {
     }
 }
 
-impl Serializer<ECommerceData> for FurySerializer {
+impl Serializer<ECommerceData> for ForySerializer {
     fn serialize(&self, data: &ECommerceData) -> Result<Vec<u8>, Box<dyn 
std::error::Error>> {
         Ok(self.fory.serialize(data))
     }
@@ -118,7 +118,7 @@ impl Serializer<ECommerceData> for FurySerializer {
     }
 }
 
-impl Serializer<SystemData> for FurySerializer {
+impl Serializer<SystemData> for ForySerializer {
     fn serialize(&self, data: &SystemData) -> Result<Vec<u8>, Box<dyn 
std::error::Error>> {
         Ok(self.fory.serialize(data))
     }
diff --git a/rust/benches/src/serializers/json.rs 
b/rust/benches/src/serializers/json.rs
index b58f6c941..a4595363b 100644
--- a/rust/benches/src/serializers/json.rs
+++ b/rust/benches/src/serializers/json.rs
@@ -117,4 +117,4 @@ impl Serializer<SystemData> for JsonSerializer {
     }
 }
 
-// Conversion functions from Serde to Fury models are defined in the model 
files
+// Conversion functions from Serde to Fory models are defined in the model 
files
diff --git a/rust/benches/src/serializers/mod.rs 
b/rust/benches/src/serializers/mod.rs
index 84a1e19c7..626bc4007 100644
--- a/rust/benches/src/serializers/mod.rs
+++ b/rust/benches/src/serializers/mod.rs
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-pub mod fury;
+pub mod fory;
 pub mod json;
 pub mod protobuf;
 
diff --git a/rust/benches/src/serializers/protobuf.rs 
b/rust/benches/src/serializers/protobuf.rs
index 363519d7e..f685ed0e9 100644
--- a/rust/benches/src/serializers/protobuf.rs
+++ b/rust/benches/src/serializers/protobuf.rs
@@ -15,9 +15,9 @@
 // specific language governing permissions and limitations
 // under the License.
 
-use crate::models::complex::{ECommerceData, FuryCustomer, FuryOrder, 
FuryOrderItem, FuryProduct};
-use crate::models::medium::{Company, FuryAddress, Person};
-use crate::models::realworld::{FuryAPIMetrics, FuryLogEntry, FuryUserProfile, 
SystemData};
+use crate::models::complex::{ECommerceData, ForyCustomer, ForyOrder, 
ForyOrderItem, ForyProduct};
+use crate::models::medium::{Company, ForyAddress, Person};
+use crate::models::realworld::{ForyAPIMetrics, ForyLogEntry, ForyUserProfile, 
SystemData};
 use crate::models::simple::{SimpleList, SimpleMap, SimpleStruct};
 use crate::serializers::{naive_datetime_to_timestamp, 
timestamp_to_naive_datetime, Serializer};
 use prost::Message;
@@ -38,7 +38,7 @@ impl ProtobufSerializer {
     }
 }
 
-// Conversion functions from Fury models to Protobuf models
+// Conversion functions from Fory models to Protobuf models
 impl From<&SimpleStruct> for ProtoSimpleStruct {
     fn from(f: &SimpleStruct) -> Self {
         ProtoSimpleStruct {
@@ -68,8 +68,8 @@ impl From<&SimpleMap> for ProtoSimpleMap {
     }
 }
 
-impl From<&FuryAddress> for Address {
-    fn from(f: &FuryAddress) -> Self {
+impl From<&ForyAddress> for Address {
+    fn from(f: &ForyAddress) -> Self {
         Address {
             street: f.street.clone(),
             city: f.city.clone(),
@@ -107,8 +107,8 @@ impl From<&Company> for ProtoCompany {
     }
 }
 
-impl From<&FuryProduct> for Product {
-    fn from(f: &FuryProduct) -> Self {
+impl From<&ForyProduct> for Product {
+    fn from(f: &ForyProduct) -> Self {
         Product {
             id: f.id.clone(),
             name: f.name.clone(),
@@ -119,8 +119,8 @@ impl From<&FuryProduct> for Product {
     }
 }
 
-impl From<&FuryOrderItem> for OrderItem {
-    fn from(f: &FuryOrderItem) -> Self {
+impl From<&ForyOrderItem> for OrderItem {
+    fn from(f: &ForyOrderItem) -> Self {
         OrderItem {
             product: Some((&f.product).into()),
             quantity: f.quantity,
@@ -130,8 +130,8 @@ impl From<&FuryOrderItem> for OrderItem {
     }
 }
 
-impl From<&FuryCustomer> for Customer {
-    fn from(f: &FuryCustomer) -> Self {
+impl From<&ForyCustomer> for Customer {
+    fn from(f: &ForyCustomer) -> Self {
         Customer {
             id: f.id.clone(),
             name: f.name.clone(),
@@ -143,8 +143,8 @@ impl From<&FuryCustomer> for Customer {
     }
 }
 
-impl From<&FuryOrder> for Order {
-    fn from(f: &FuryOrder) -> Self {
+impl From<&ForyOrder> for Order {
+    fn from(f: &ForyOrder) -> Self {
         Order {
             id: f.id.clone(),
             customer: Some((&f.customer).into()),
@@ -172,8 +172,8 @@ impl From<&ECommerceData> for ProtoECommerceData {
     }
 }
 
-impl From<&FuryLogEntry> for LogEntry {
-    fn from(f: &FuryLogEntry) -> Self {
+impl From<&ForyLogEntry> for LogEntry {
+    fn from(f: &ForyLogEntry) -> Self {
         LogEntry {
             id: f.id.clone(),
             level: f.level,
@@ -187,8 +187,8 @@ impl From<&FuryLogEntry> for LogEntry {
     }
 }
 
-impl From<&FuryUserProfile> for UserProfile {
-    fn from(f: &FuryUserProfile) -> Self {
+impl From<&ForyUserProfile> for UserProfile {
+    fn from(f: &ForyUserProfile) -> Self {
         UserProfile {
             user_id: f.user_id.clone(),
             username: f.username.clone(),
@@ -201,8 +201,8 @@ impl From<&FuryUserProfile> for UserProfile {
     }
 }
 
-impl From<&FuryAPIMetrics> for ApiMetrics {
-    fn from(f: &FuryAPIMetrics) -> Self {
+impl From<&ForyAPIMetrics> for ApiMetrics {
+    fn from(f: &ForyAPIMetrics) -> Self {
         ApiMetrics {
             endpoint: f.endpoint.clone(),
             request_count: f.request_count,
@@ -225,7 +225,7 @@ impl From<&SystemData> for ProtoSystemData {
     }
 }
 
-// Conversion functions from Protobuf models to Fury models
+// Conversion functions from Protobuf models to Fory models
 impl From<ProtoSimpleStruct> for SimpleStruct {
     fn from(p: ProtoSimpleStruct) -> Self {
         SimpleStruct {
@@ -255,9 +255,9 @@ impl From<ProtoSimpleMap> for SimpleMap {
     }
 }
 
-impl From<Address> for FuryAddress {
+impl From<Address> for ForyAddress {
     fn from(p: Address) -> Self {
-        FuryAddress {
+        ForyAddress {
             street: p.street,
             city: p.city,
             country: p.country,
@@ -293,9 +293,9 @@ impl From<ProtoCompany> for Company {
     }
 }
 
-impl From<Product> for FuryProduct {
+impl From<Product> for ForyProduct {
     fn from(p: Product) -> Self {
-        FuryProduct {
+        ForyProduct {
             id: p.id,
             name: p.name,
             price: p.price,
@@ -305,9 +305,9 @@ impl From<Product> for FuryProduct {
     }
 }
 
-impl From<OrderItem> for FuryOrderItem {
+impl From<OrderItem> for ForyOrderItem {
     fn from(p: OrderItem) -> Self {
-        FuryOrderItem {
+        ForyOrderItem {
             product: p.product.map(|prod| prod.into()).unwrap_or_default(),
             quantity: p.quantity,
             unit_price: p.unit_price,
@@ -316,9 +316,9 @@ impl From<OrderItem> for FuryOrderItem {
     }
 }
 
-impl From<Customer> for FuryCustomer {
+impl From<Customer> for ForyCustomer {
     fn from(p: Customer) -> Self {
-        FuryCustomer {
+        ForyCustomer {
             id: p.id,
             name: p.name,
             email: p.email,
@@ -332,9 +332,9 @@ impl From<Customer> for FuryCustomer {
     }
 }
 
-impl From<Order> for FuryOrder {
+impl From<Order> for ForyOrder {
     fn from(p: Order) -> Self {
-        FuryOrder {
+        ForyOrder {
             id: p.id,
             customer: p.customer.map(|c| c.into()).unwrap_or_default(),
             items: p.items.into_iter().map(|i| i.into()).collect(),
@@ -364,9 +364,9 @@ impl From<ProtoECommerceData> for ECommerceData {
     }
 }
 
-impl From<LogEntry> for FuryLogEntry {
+impl From<LogEntry> for ForyLogEntry {
     fn from(p: LogEntry) -> Self {
-        FuryLogEntry {
+        ForyLogEntry {
             id: p.id,
             level: p.level,
             message: p.message,
@@ -382,9 +382,9 @@ impl From<LogEntry> for FuryLogEntry {
     }
 }
 
-impl From<UserProfile> for FuryUserProfile {
+impl From<UserProfile> for ForyUserProfile {
     fn from(p: UserProfile) -> Self {
-        FuryUserProfile {
+        ForyUserProfile {
             user_id: p.user_id,
             username: p.username,
             email: p.email,
@@ -399,9 +399,9 @@ impl From<UserProfile> for FuryUserProfile {
     }
 }
 
-impl From<ApiMetrics> for FuryAPIMetrics {
+impl From<ApiMetrics> for ForyAPIMetrics {
     fn from(p: ApiMetrics) -> Self {
-        FuryAPIMetrics {
+        ForyAPIMetrics {
             endpoint: p.endpoint,
             request_count: p.request_count,
             avg_response_time: p.avg_response_time,


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to