# Documentation Index

Documentation for the Apache IoTDB Node.js client.

## User Guides

- **Tree Model (Timeseries)**
  - [English](user-guide-tree.md)
  - [中文](user-guide-tree-zh.md)
- **Table Model (Relational)**
  - [English](user-guide-table.md)
  - [中文](user-guide-table-zh.md)

## API & Usage

- [Data Types](data-types.md) - Supported data types and usage
- [Tablet Interfaces](tablet-interfaces.md) - TreeTablet vs TableTablet guide
- [ColumnCategory Usage](COLUMNCATEGORY_USAGE.md) - Table model column categories
- [SessionDataSet Guide](sessiondataset-guide.md) - Iterator pattern for query results
- [TypeScript Examples](typescript-examples.md) - TypeScript usage examples
- [Thrift Documentation](thrift.md) - Thrift code generation and definitions

## Performance & Design

- [Performance Guide](performance-guide.md) - Optimization guide with benchmarks
- [Redirection Design](redirection-design.md) - Client-side redirection optimization

## Development

- [Build Infrastructure](development/build-infrastructure.md) - Build system overview
- [Debugging E2E Tests](development/debugging-e2e.md) - E2E testing guide
- [Test Database Reference](development/test-database.md) - Test database setup

## Additional Resources

- [Benchmark Tools](../benchmark/README.md) - Performance testing tools
- [Examples](../examples/) - Code examples
- [Contributing Guidelines](../CONTRIBUTING.md) - How to contribute
- [Changelog](../CHANGELOG.md) - Version history
