blob: 4c8ee93d40e48c369771c31bb9a9221b492e5d6b [file]
export const COPY_SUCCESS_MSG = "Copied!";
export const COPY_FAIL_MSG = "Failed to copy!";
export const COPY_TIMEOUT = 2000;
export const CODE_EXAMPLES = {
java: {
label: "Java",
code: `import java.util.List;
import java.util.Arrays;
import org.apache.fory.*;
public class Example {
// Note that Fory instances should be reused between
// multiple serializations of different objects.
static ThreadSafeFory fory = Fory.builder().withLanguage(Language.JAVA)
// Allow to deserialize objects unknown types,
// more flexible but less secure.
// .requireClassRegistration(false)
.buildThreadSafeFory();
static {
// Registering types can reduce class name serialization
// overhead but not mandatory.
// If secure mode enabled
//all custom types must be registered.
fory.register(SomeClass.class);
}
public static void main(String[] args) {
SomeClass object = new SomeClass();
byte[] bytes = fory.serialize(object);
System.out.println(fory.deserialize(bytes));
}
}`,
},
kotlin: {
label: "Kotlin",
code: `import org.apache.fory.Fory
import org.apache.fory.ThreadSafeFory
import org.apache.fory.serializer.kotlin.KotlinSerializers
data class Person(val name: String, val id: Long, val github: String)
data class Point(val x : Int, val y : Int, val z : Int)
fun main(args: Array<String>) {
// Note: following fory init code should be executed only once in a global scope instead
// of initializing it everytime when serialization.
val fory: ThreadSafeFory = Fory.builder().requireClassRegistration(true).buildThreadSafeFory()
KotlinSerializers.registerSerializers(fory)
fory.register(Person::class.java)
fory.register(Point::class.java)
val p = Person("Shawn Yang", 1, "https://github.com/chaokunyang")
println(fory.deserialize(fory.serialize(p)))
println(fory.deserialize(fory.serialize(Point(1, 2, 3))))
}`,
},
scala: {
label: "Scala",
code: `case class Person(name: String, id: Long, github: String)
case class Point(x : Int, y : Int, z : Int)
object ScalaExample {
val fory: Fory = Fory.builder().withScalaOptimizationEnabled(true).build()
// Register optimized fory serializers for scala
ScalaSerializers.registerSerializers(fory)
fory.register(classOf[Person])
fory.register(classOf[Point])
def main(args: Array[String]): Unit = {
val p = Person("Shawn Yang", 1, "https://github.com/chaokunyang")
println(fory.deserialize(fory.serialize(p)))
println(fory.deserialize(fory.serialize(Point(1, 2, 3))))
}
}`,
},
rust: {
label: "Rust",
code: `use fory::{Fory, Error};
use fory::ForyObject;
#[derive(ForyObject, Debug, PartialEq)]
struct User {
name: String,
age: i32,
email: String,
}
fn main() -> Result<(), Error> {
let mut fory = Fory::default();
fory.register::<User>(1)?;
let user = User { name: "Alice".into(), age: 30, email: "alice@example.com".into() };
let bytes = fory.serialize(&user)?;
let decoded: User = fory.deserialize(&bytes)?;
assert_eq!(user, decoded);
Ok(())
}`,
},
python: {
label: "Python",
code: `import pyfory
from dataclasses import dataclass
from typing import List, Dict
@dataclass
class Person:
name: str
age: int
scores: List[int]
metadata: Dict[str, str]
# Python mode - supports all Python types including dataclasses
fory = pyfory.Fory(xlang=False, ref=True)
fory.register(Person)
person = Person("Bob", 25, [88, 92, 85], {"team": "engineering"})
data = fory.serialize(person)
result = fory.deserialize(data)
print(result) # Person(name='Bob', age=25, ...)`,
},
};
export const imageUrls = [
{ key: "java", src: "/home/java.svg", label: "Java" },
{ key: "python", src: "/home/python.svg", label: "Python" },
{ key: "golang", src: "/home/golang.svg", label: "Golang" },
{
key: "javascript",
src: "/home/JavaScript.svg",
label: "JavaScript",
},
{ key: "rust", src: "/home/Rust.svg", label: "Rust" },
{ key: "more", src: "/home/more.svg", label: "More" },
];