rustable
Version:
A TypeScript library that brings Rust-inspired features to TypeScript, including traits, Option, Result, and more. Zero dependencies, type-safe implementation.
96 lines (67 loc) ⢠3.07 kB
Markdown
# Rustable
š¦ A TypeScript library that brings Rust's powerful features and patterns to TypeScript development. Rustable provides type-safe implementations of Rust's most valuable patterns while maintaining TypeScript's ease of use.
## ⨠Features
- šÆ **Trait System** - Complete Rust-like trait system
- š **Type Safety** - Comprehensive type-safe implementations
- š **Error Handling** - Pattern matching and error handling
- š§© **Collections** - Efficient collections and traits
- š **Iterators** - Rich iterator utilities and adapters
- š¦ **Zero Deps** - No external runtime dependencies
## š¦ Installation
```bash
npm install rustable
# or
yarn add rustable
# or
pnpm add rustable
```
## š Packages
### [@rustable/commons](https://github.com/illuxiza/ts-rustable/tree/main/packages/commons#readme)
š§© Type-safe collections and common traits
- HashMap with efficient key-value storage
- Entry API for safe map manipulation
- HashSet for unique value storage
- Vec with Rust-like operations
- IdxVec with array-like index access
- Clone trait for deep cloning
- Eq trait for equality comparison
- From trait for type conversion
### [@rustable/enum](https://github.com/illuxiza/ts-rustable/tree/main/packages/enum#readme)
š Enum support and pattern matching
- Option\<T> for null safety with rich combinators
- Result<T, E> for error handling with chainable operations
- Pattern matching with exhaustive checks
- Enum support with variant types
- Match expressions with guard clauses
### [@rustable/iter](https://github.com/illuxiza/ts-rustable/tree/main/packages/iter#readme)
š Iterator utilities and lazy evaluation
- Rust-like iterator methods (map, filter, fold)
- Lazy evaluation and efficient chaining
- Specialized iterators (Range, Zip, Chain)
- Consuming operations (collect, reduce, find)
- Iterator adaptors (take, skip, enumerate)
### [@rustable/trait](https://github.com/illuxiza/ts-rustable/tree/main/packages/trait#readme)
šÆ Core trait system implementation
- Type-safe trait definitions with generics
- Runtime trait checking and verification
- Macro-based trait implementation
- Default implementations with overrides
- Trait composition and inheritance
### [@rustable/type](https://github.com/illuxiza/ts-rustable/tree/main/packages/type#readme)
šØ Rust-like type system
- Generic type construction and management
- Runtime type identification (TypeId)
- Type-safe factory creation
- Type reflection and utilities
- Named type decorators
### [@rustable/utils](https://github.com/illuxiza/ts-rustable/tree/main/packages/utils#readme)
š ļø Core utilities
- Deep cloning of objects and values
- String manipulation and serialization
- Value comparison and equality checks
- Pointer management (Ptr) for mutable references
- Value management (Val) for immutable references
## š¤ Contributing
We welcome contributions! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
## š License
MIT Ā© illuxiza