# JVMRS Documentation Index
Complete documentation for JVMRS - a high-performance Java Virtual Machine in Rust.
## Quick Start
- **[Quick Start Guide](QUICKSTART.md)** ⚡
Get up and running with JVMRS in minutes
- Installation instructions
- Your first program
- Common patterns
## Core Documentation
### Architecture & Design
- **[Architecture Documentation](ARCHITECTURE.md)** 📐
Design decisions, components, and system architecture
- Module organization
- Memory management
- Compilation strategy
- Extension points
### API Reference
- **[API Reference](docs/api-reference.md)** 📚
Complete reference for all public APIs with examples
- Core API
- Memory API
- Reflection API
- JIT API
- Native methods
- Error handling
### Implementation Summary
- **[Implementation Summary](IMPLEMENTATION_SUMMARY.md)** 📊
Overview of performance enhancements and features
- Inline caching (3-5x speedup)
- TLAB (2-3x faster allocation)
- Property-based tests (30+ tests)
- Comprehensive benchmarks (14 categories)
## Performance Optimization
### Performance Tuning
- **[Performance Tuning Guide](docs/performance-tuning.md)** ⚙️
Comprehensive guide for optimizing JVMRS performance
- JIT compilation configuration
- Memory management strategies
- Garbage collection tuning
- Platform-specific optimizations
- Benchmarking and profiling
### Developer Experience
- **[Developer Experience Guide](docs/developer-experience.md)** 🛠️
Tools and workflows for JVMRS development
- Interactive REPL
- Performance profiling
- Hot reloading
- Inline caching statistics
- TLAB monitoring
- Property-based testing
## Competitive Analysis
### Competitive Differentiation
- **[Competitive Differentiation](docs/competitive-differentiation.md)** 🎯
How JVMRS differs from HotSpot, OpenJ9, and GraalVM
- Performance optimizations
- Memory safety advantages
- Polyglot capabilities
- Deployment targets
- Developer experience
## Polyglot Programming
### Polyglot Guide
- **[Polyglot Programming Guide](docs/polyglot-programming.md)** 🔄
Seamless Java/Rust interop without JNI overhead
- Rust-Java interop
- Java-Rust interop
- Shared objects
- Type mapping
- Error handling
- Performance optimization
## Deployment Guides
### Specialized Deployment
- **[WASI and Deployment](docs/wasi-and-deployment.md)** 🌐
Deploy JVMRS to edge and serverless platforms
- **[no_std Guide](docs/no_std.md)** 📱
Use JVMRS on resource-constrained embedded systems
- **[Polyglot](docs/polyglot.md)** 🔗
Multi-language integration and interop
## Testing & Benchmarking
### Testing
- **[Property-Based Tests](tests/property_tests.rs)** ✅
30+ property-based tests verifying 20+ invariants
- Arithmetic laws
- Bitwise invariants
- Array properties
- Stack operations
- String operations
- GC correctness
### Benchmarking
- **[Comprehensive Benchmark Suite](benches/comprehensive_benchmarks.rs)** 📈
14 benchmark categories covering all major operations
- Class loading
- Method invocation
- Arithmetic operations
- Memory operations
- Garbage collection
- String operations
- Collections
- Concurrency
- JIT compilation
- Reflection
- Inline cache effectiveness
- Polyglot interop
- Startup performance
## Reference Documentation
- **[Specification](SPEC.md)** 📜
Technical specification and JVM compatibility
- **[TODO](TODO.md)** 📋
Roadmap and future enhancements
- **[Book](docs/book/)** 📖
Organized documentation in mdbook format
## Feature Documentation
### Optional Features
- **[C API](src/ffi.rs)** 🔌
Embed JVMRS in C/C++ applications
- **[Async I/O](src/async_io.rs)** ⏱️
Async class loading with tokio
- **[SIMD](src/simd.rs)** 🚀
Vectorized array operations
- **[Truffle API](src/truffle.rs)** 🎭
GraalVM-style language implementation API
### Security & Tooling
- **[Security](src/security.rs)** 🔒
Security instrumentation and analysis
- **[AOP](src/aop.rs)** 🔧
Aspect-oriented programming support
- **[Cloud](src/cloud.rs)** ☁️
Cloud deployment optimizations
- **[Hot Reload](src/hot_reload.rs)** 🔄
Runtime code reloading
## Module Documentation
### Source Modules
- **[Interpreter](src/interpreter/)** 💻
Bytecode execution engine
- Inline caching integration
- Method dispatch
- Instruction implementation
- **[JIT](src/jit.rs)** ⚡
Just-in-time compilation
- Tiered compilation
- Profile-guided optimization
- **[Memory](src/memory/)** 🧠
Memory management
- Heap allocation
- Stack management
- Garbage collection
- **[Inline Cache](src/inline_cache.rs)** 🎯
Optimized method invocation
- Per-call-site caching
- Statistics tracking
- **[TLAB](src/tlab.rs)** 📦
Thread-local allocation buffers
- Fast, lock-free allocation
- Configurable sizing
- **[Reflection](src/reflection.rs)** 🪞
Runtime introspection
- Class information
- Method discovery
- Field access
- **[REPL](src/repl.rs)** 💬
Interactive command-line interface
- Class inspection
- Method execution
- State monitoring
## Getting Help
### Community
- **[GitHub Issues](https://github.com/yingkitw/jvmrs/issues)** 🐛
Bug reports and feature requests
- **[GitHub Discussions](https://github.com/yingkitw/jvmrs/discussions)** 💭
Questions and discussions
- **[Crates.io](https://crates.io/crates/jvmrs)** 📦
Crate information and versions
- **[Docs.rs](https://docs.rs/jvmrs)** 📚
API documentation
### Contributing
- Read [ARCHITECTURE.md](ARCHITECTURE.md) for design decisions
- Check [TODO.md](TODO.md) for roadmap
- Review [IMPLEMENTATION_SUMMARY.md](IMPLEMENTATION_SUMMARY.md) for recent features
## Quick Reference
### Performance Tips
1. Enable JIT compilation (default: on)
2. Lower JIT threshold for short-lived apps
3. Enable inline caching (default: on)
4. Use TLAB for faster allocation (default: on)
5. Profile hot methods and optimize
### Common Patterns
1. **Polyglot**: Register Rust functions for fast interop
2. **Reflection**: Use `get_class_info()` for runtime inspection
3. **Native Methods**: Use JNI-style registration for performance
4. **Error Handling**: Always handle `Result<T, JvmError>`
5. **Testing**: Use property-based tests for invariants
### Configuration
- **JIT**: `TieredCompilationConfig`
- **TLAB**: `TlabConfig`
- **Inline Cache**: `InlineCacheManager`
- **Profiler**: `Profiler`
- **Trace Recorder**: `TraceRecorder`
- **Deterministic**: `DeterministicConfig`
## Documentation Status
| API Reference | 100% | Yes | Yes |
| Performance Guide | Complete | Yes | No |
| Polyglot Guide | Complete | Yes | No |
| Architecture | Complete | No | No |
| Competitive Analysis | Complete | No | No |
## Version History
### Current Version: 0.1.1
**New Features**:
- Inline caching for optimized method dispatch (3-5x speedup)
- Thread-local allocation buffers (2-3x faster allocation)
- Interactive REPL for JVM exploration
- Comprehensive benchmark suite (14 categories)
- Property-based testing (30+ tests)
- Complete API reference with examples
- Performance tuning guide
- Polyglot programming guide
**Performance Improvements**:
- 3-5x faster virtual method calls (inline caching)
- 2-3x faster object allocation (TLAB)
- Reduced GC pressure (30-40%)
- Improved cache locality (20-30%)
**Documentation**:
- 5 comprehensive guides
- Complete API reference
- Implementation summary
- Quick start guide
---
**For more information**, visit [https://github.com/yingkitw/jvmrs](https://github.com/yingkitw/jvmrs)