{"id":27386620,"url":"https://github.com/cool-japan/scirs","last_synced_at":"2026-03-17T06:12:01.046Z","repository":{"id":286791361,"uuid":"961851295","full_name":"cool-japan/scirs","owner":"cool-japan","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-08T11:34:37.000Z","size":818,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-08T11:37:15.848Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cool-japan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-04-07T09:07:48.000Z","updated_at":"2025-04-08T11:34:40.000Z","dependencies_parsed_at":"2025-04-08T11:47:21.606Z","dependency_job_id":null,"html_url":"https://github.com/cool-japan/scirs","commit_stats":null,"previous_names":["cool-japan/scirs"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cool-japan%2Fscirs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cool-japan%2Fscirs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cool-japan%2Fscirs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cool-japan%2Fscirs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cool-japan","download_url":"https://codeload.github.com/cool-japan/scirs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248557847,"owners_count":21124168,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-04-13T17:49:51.456Z","updated_at":"2026-03-17T06:11:56.021Z","avatar_url":"https://github.com/cool-japan.png","language":"Rust","readme":"# SciRS2 - Scientific Computing and AI in Rust\n\n![SciRS2 CI](https://github.com/cool-japan/scirs/workflows/SciRS2%20CI/badge.svg)\n![Advanced \u0026 AI/ML Modules](https://github.com/cool-japan/scirs/workflows/SciRS2%20Advanced%20%26%20AI%2FML%20Modules/badge.svg)\n![Documentation](https://github.com/cool-japan/scirs/workflows/SciRS2%20Documentation/badge.svg)\n\nSciRS2 is an ambitious project to provide a comprehensive scientific computing and AI/ML infrastructure in Rust, providing SciPy-compatible APIs while leveraging Rust's performance and safety features.\n\n## Project Goals\n\n- Create a comprehensive scientific computing and machine learning library in Rust\n- Maintain API compatibility with SciPy where reasonable\n- Provide specialized tools for AI and machine learning development\n- Leverage Rust's performance, safety, and concurrency features\n- Build a sustainable open-source ecosystem for scientific and AI computing in Rust\n\n## Project Structure\n\nSciRS2 adopts a modular architecture with separate crates for different functional areas, using Rust's workspace feature to manage them:\n\n```\n/\n# Core Scientific Computing Modules\n├── Cargo.toml                # Workspace configuration\n├── scirs2-core/              # Core utilities and common functionality\n├── scirs2-linalg/            # Linear algebra module\n├── scirs2-integrate/         # Numerical integration\n├── scirs2-interpolate/       # Interpolation algorithms\n├── scirs2-optimize/          # Optimization algorithms\n├── scirs2-fft/               # Fast Fourier Transform\n├── scirs2-stats/             # Statistical functions\n├── scirs2-special/           # Special mathematical functions\n├── scirs2-signal/            # Signal processing\n├── scirs2-sparse/            # Sparse matrix operations\n├── scirs2-spatial/           # Spatial algorithms\n\n# Future Advanced Modules\n├── scirs2-cluster/           # Clustering algorithms\n├── scirs2-ndimage/           # N-dimensional image processing\n├── scirs2-io/                # Input/output utilities\n├── scirs2-datasets/          # Sample datasets and loaders\n\n# AI/ML Modules\n├── scirs2-autograd/          # Automatic differentiation engine\n├── scirs2-neural/            # Neural network building blocks\n├── scirs2-optim/             # ML-specific optimization algorithms\n├── scirs2-graph/             # Graph processing algorithms\n├── scirs2-transform/         # Data transformation utilities\n├── scirs2-metrics/           # ML evaluation metrics\n├── scirs2-text/              # Text processing utilities\n├── scirs2-vision/            # Computer vision operations\n├── scirs2-series/            # Time series analysis\n\n# Main Integration Crate\n└── scirs2/                   # Main integration crate\n    ├── Cargo.toml\n    └── src/\n        └── lib.rs            # Re-exports from all other crates\n```\n\nThis modular architecture offers several advantages:\n- **Flexible Dependencies**: Users can select only the features they need\n- **Independent Development**: Each module can be developed and tested separately\n- **Clear Separation**: Each module focuses on a specific functional area\n- **No Circular Dependencies**: Clear hierarchy prevents circular dependencies\n- **AI/ML Focus**: Specialized modules for machine learning and AI workloads\n\n## Module Documentation\n\nEach module has its own README with detailed documentation:\n\n### Core Modules\n- [**scirs2**](scirs2/README.md): Main integration crate\n- [**scirs2-core**](scirs2-core/README.md): Core utilities and common functionality\n- [**scirs2-linalg**](scirs2-linalg/README.md): Linear algebra module\n- [**scirs2-integrate**](scirs2-integrate/README.md): Numerical integration\n- [**scirs2-interpolate**](scirs2-interpolate/README.md): Interpolation algorithms\n- [**scirs2-optimize**](scirs2-optimize/README.md): Optimization algorithms\n- [**scirs2-fft**](scirs2-fft/README.md): Fast Fourier Transform\n- [**scirs2-stats**](scirs2-stats/README.md): Statistical functions\n- [**scirs2-special**](scirs2-special/README.md): Special mathematical functions\n- [**scirs2-signal**](scirs2-signal/README.md): Signal processing\n- [**scirs2-sparse**](scirs2-sparse/README.md): Sparse matrix operations\n- [**scirs2-spatial**](scirs2-spatial/README.md): Spatial algorithms\n\n### Advanced Modules\n- [**scirs2-cluster**](scirs2-cluster/README.md): Clustering algorithms\n- [**scirs2-ndimage**](scirs2-ndimage/README.md): N-dimensional image processing\n- [**scirs2-io**](scirs2-io/README.md): Input/output utilities\n- [**scirs2-datasets**](scirs2-datasets/README.md): Sample datasets and loaders\n\n### AI/ML Modules\n- [**scirs2-autograd**](scirs2-autograd/README.md): Automatic differentiation engine\n- [**scirs2-neural**](scirs2-neural/README.md): Neural network building blocks\n- [**scirs2-optim**](scirs2-optim/README.md): ML-specific optimization algorithms\n- [**scirs2-graph**](scirs2-graph/README.md): Graph processing algorithms\n- [**scirs2-transform**](scirs2-transform/README.md): Data transformation utilities\n- [**scirs2-metrics**](scirs2-metrics/README.md): ML evaluation metrics\n- [**scirs2-text**](scirs2-text/README.md): Text processing utilities\n- [**scirs2-vision**](scirs2-vision/README.md): Computer vision operations\n- [**scirs2-series**](scirs2-series/README.md): Time series analysis\n\n## Implementation Strategy\n\nWe follow a phased approach:\n\n1. **Core functionality analysis**: Identify key features and APIs of each SciPy module\n2. **Prioritization**: Begin with highest-demand modules (linalg, stats, optimize)\n3. **Interface design**: Balance Rust idioms with SciPy compatibility\n4. **Scientific computing foundation**: Implement core scientific computing modules first\n5. **Advanced modules**: Implement specialized modules for advanced scientific computing\n6. **AI/ML infrastructure**: Develop specialized tools for AI and machine learning\n7. **Integration and optimization**: Ensure all modules work together efficiently\n\n## Dependencies\n\nSciRS2 leverages the Rust ecosystem:\n\n### Core Dependencies\n- `ndarray` or `nalgebra`: Multidimensional array operations\n- `num`: Numeric abstractions\n- `rayon`: Parallel processing\n- `rustfft`: Fast Fourier transforms\n- `ndarray-linalg` or `linxal`: Linear algebra computations\n- `argmin`: Optimization algorithms\n- `rand` and `rand_distr`: Random number generation and distributions\n\n### Future AI/ML Dependencies\n- `tch-rs`: Bindings to the PyTorch C++ API\n- `burn`: Pure Rust neural network framework\n- `pandrs`: Fast DataFrame library for data manipulation (upcoming crate)\n- `numrs`: NumPy-like array operations in Rust (upcoming crate)\n- `tokenizers`: Fast tokenization utilities\n- `image`: Image processing utilities\n- `petgraph`: Graph algorithms and data structures\n\n## Contributing\n\nContributions are welcome! Please see our [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n## License\n\nThis project is licensed under [Apache License 2.0](LICENSE).\n\n## Current Status\n\n### Completed Modules\n\nThe following core scientific computing modules have been implemented:\n\n- **Linear Algebra Module** (`scirs2-linalg`): Basic matrix operations, decompositions (LU, QR, SVD), eigenvalue problems, BLAS/LAPACK interfaces\n- **Statistics Module** (`scirs2-stats`): Descriptive statistics, distributions, statistical tests, regression models\n- **Optimization Module** (`scirs2-optimize`): Unconstrained \u0026 constrained optimization, least squares, root finding\n- **Integration Module** (`scirs2-integrate`): Numerical integration, ODE solvers\n- **Interpolation Module** (`scirs2-interpolate`): 1D \u0026 ND interpolation, splines\n- **Signal Processing** (`scirs2-signal`): Filtering, convolution, spectral analysis\n- **FFT Module** (`scirs2-fft`): FFT, inverse FFT, DCT, DST\n- **Sparse Matrix** (`scirs2-sparse`): Various sparse matrix formats and operations\n- **Special Functions** (`scirs2-special`): Mathematical special functions\n- **Spatial Algorithms** (`scirs2-spatial`): KD-trees, distance calculations\n\n### Current Phase: AI and Machine Learning Modules\n\nWe have completed the implementation of core scientific computing modules, advanced modules, and now we're focusing on AI/ML infrastructure:\n\n#### Completed Advanced Modules:\n- **Clustering** (`scirs2-cluster`): Vector quantization, hierarchical clustering, density-based clustering\n- **N-dimensional Image Processing** (`scirs2-ndimage`): Filtering, morphology, measurements\n- **I/O utilities** (`scirs2-io`): MATLAB, WAV, and ARFF file formats, image handling\n- **Datasets** (`scirs2-datasets`): Sample datasets and loaders\n\n#### Completed AI/ML Modules:\n- **Automatic Differentiation** (`scirs2-autograd`): Reverse-mode automatic differentiation, tensor operations, neural network primitives\n- **Neural Networks** (`scirs2-neural`): Neural network layers, activations, loss functions\n- **ML Optimization** (`scirs2-optim`): Optimizers, learning rate schedulers, regularization techniques\n- **Graph Processing** (`scirs2-graph`): Graph algorithms and data structures\n- **Data Transformation** (`scirs2-transform`): Feature engineering, normalization\n- **Evaluation Metrics** (`scirs2-metrics`): Classification, regression metrics\n- **Text Processing** (`scirs2-text`): Tokenization, vectorization\n- **Computer Vision** (`scirs2-vision`): Image processing, feature detection\n- **Time Series Analysis** (`scirs2-series`): Decomposition, forecasting\n\n### Current Focus: Refinement and Optimization\n\nWe are now focusing on refining the existing modules, improving performance, and ensuring comprehensive test coverage and documentation:\n- Performance optimization\n- API refinement\n- Comprehensive documentation\n- Integration testing\n- User feedback incorporation\n- Benchmark comparison with other libraries\n\nFor more detailed information on development status and roadmap, check the [TODO.md](TODO.md) file.","funding_links":[],"categories":["Libraries"],"sub_categories":["Computation"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcool-japan%2Fscirs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcool-japan%2Fscirs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcool-japan%2Fscirs/lists"}