Skip to content
LoSkroefie edited this page Jan 19, 2025 · 1 revision

Frequently Asked Questions

General Questions

What is FLEXON?

FLEXON is a binary serialization format designed as a modern alternative to JSON, offering better performance, smaller file sizes, and richer type support.

Why use FLEXON instead of JSON?

  • 60-80% smaller file sizes
  • 2-3x faster processing
  • Native support for binary data, DateTime, and UUID
  • Built-in schema validation
  • Better type safety

Is FLEXON compatible with JSON?

Yes, FLEXON can seamlessly convert to and from JSON. All valid JSON can be represented in FLEXON.

Technical Questions

What data types does FLEXON support?

FLEXON supports all JSON types plus:

  • DateTime
  • UUID
  • Binary data
  • Rich numeric types
  • Custom type extensions

How does compression work?

FLEXON uses a combination of:

  • Efficient binary encoding
  • Built-in GZIP compression
  • Type-specific optimizations

Is FLEXON thread-safe?

Yes, FLEXON operations are thread-safe when using separate instances.

Performance

How much smaller are FLEXON files?

Typically:

  • 60-80% smaller than JSON
  • 40-60% smaller than BSON
  • 30-50% smaller than MessagePack

What's the performance impact?

  • Serialization: 2-3x faster than JSON
  • Deserialization: 2-3x faster than JSON
  • Validation: 2x faster than JSON Schema

How does it handle large files?

FLEXON includes streaming support for efficient processing of large files with minimal memory usage.

Usage

Can I use FLEXON with my preferred language?

FLEXON provides bindings for:

  • .NET
  • Python
  • JavaScript/Node.js
  • Java
  • Go
  • Rust

How do I handle schema changes?

FLEXON supports:

  • Optional fields
  • Schema versioning
  • Backward compatibility
  • Migration tools

Is there a size limit?

FLEXON can handle:

  • Individual files up to 2GB
  • Streaming for larger datasets
  • Efficient memory usage

Integration

Can I use FLEXON in a web API?

Yes, FLEXON works well for:

  • REST APIs
  • WebSocket data
  • File uploads/downloads
  • Configuration files

Does it work with databases?

Yes, FLEXON integrates with:

  • Document databases
  • Key-value stores
  • Object storage
  • File systems

Can I use it in production?

Yes, FLEXON is production-ready with:

  • Comprehensive testing
  • Error handling
  • Performance optimization
  • Security considerations

Troubleshooting

Common Error Messages

"Invalid type indicator"

  • Cause: Corrupted FLEXON file
  • Solution: Verify file integrity

"Schema validation failed"

  • Cause: Data doesn't match schema
  • Solution: Check validation errors

"Compression error"

  • Cause: Memory or I/O issues
  • Solution: Check system resources

Best Practices

Performance

  • Use streaming for large files
  • Enable compression for network transfer
  • Cache compiled schemas

Memory Usage

  • Process data in chunks
  • Use appropriate buffer sizes
  • Clean up resources properly

Error Handling

  • Implement proper validation
  • Handle edge cases
  • Log errors appropriately

Support

Where can I get help?

  • GitHub Issues
  • Documentation
  • Community Forums
  • Email Support

How do I report bugs?

Create a GitHub issue with:

  • Version information
  • Error message
  • Reproduction steps
  • Sample data (if possible)

How do I request features?

Submit a feature request with:

  • Use case description
  • Expected behavior
  • Technical requirements
  • Impact assessment

Clone this wiki locally