{"id":23334936,"url":"https://github.com/jeffasante/rustviz","last_synced_at":"2025-04-07T12:28:43.560Z","repository":{"id":265144411,"uuid":"895266073","full_name":"jeffasante/rustviz","owner":"jeffasante","description":"A high-performance CSV analysis tool built with Rust and WebAssembly.","archived":false,"fork":false,"pushed_at":"2024-11-28T08:51:21.000Z","size":454,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-13T15:17:12.760Z","etag":null,"topics":["data-science","webassembly"],"latest_commit_sha":null,"homepage":"","language":"HTML","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/jeffasante.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"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":"2024-11-27T21:57:33.000Z","updated_at":"2024-12-30T22:31:06.000Z","dependencies_parsed_at":"2024-11-28T00:46:08.602Z","dependency_job_id":null,"html_url":"https://github.com/jeffasante/rustviz","commit_stats":null,"previous_names":["jeffasante/rustviz"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffasante%2Frustviz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffasante%2Frustviz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffasante%2Frustviz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffasante%2Frustviz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jeffasante","download_url":"https://codeload.github.com/jeffasante/rustviz/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247651889,"owners_count":20973521,"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":["data-science","webassembly"],"created_at":"2024-12-21T01:14:55.377Z","updated_at":"2025-04-07T12:28:43.538Z","avatar_url":"https://github.com/jeffasante.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RustViz\n\nA high-performance CSV analysis tool built with Rust and WebAssembly. This project provides statistical analysis and visualization capabilities for CSV data directly in the browser.\n\n## Features\n\n- Fast CSV parsing using Rust and WebAssembly\n- Linear regression analysis\n- Interactive data visualization\n- Basic statistical calculations\n- Browser-based processing (no server required)\n- Pure vanilla JavaScript implementation\n\n## Demo\n\nUpload any CSV file and:\n- Select columns for analysis\n- View basic statistics (mean, median, standard deviation)\n- See linear regression results\n- Visualize data with interactive charts\n\n\n## Interface\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"assets/desktop-view.png\" alt=\"RustViz Desktop Interface\" width=\"600\"/\u003e\n  \u003cp\u003e\u003cem\u003eMain application interface showcasing CSV data analysis and visualization\u003c/em\u003e\u003c/p\u003e\n\u003c/div\u003e\n\n[Demo](https://jeffasante.github.io/rustviz/)\n\n## Getting Started\n\n### Prerequisites\n\n- [Rust](https://www.rust-lang.org/tools/install)\n- [wasm-pack](https://rustwasm.github.io/wasm-pack/installer/)\n- A modern web browser\n\n### Installation\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/jeffasante/rustviz\ncd rustviz\n```\n\n2. Build the WebAssembly module:\n\n# Install wasm-pack if you haven't already\n```bash\ncargo install wasm-pack\n```\n\n```bash\nwasm-pack build --target web\n```\n\n1. Serve the project:\n```bash\n# Using Python\npython -m http.server 8000\n\n# Or using Node.js\nnpx http-server\n```\n\n4. Open `http://localhost:8000` in your browser\n\n### Project Structure\n\n```\nrustviz/\n├── Cargo.toml          # Rust dependencies and configuration\n├── pkg                 # WebAssembly modules and JavaScript bindings\n│   └── (*.wasm, *.js)  # Wasm packages\n├── src/\n│   └── lib.rs          # Rust implementation\n├── www/\n│   ├── index.html      # Web interface\n│   ├── style.css       # Styling\n│   └── main.js         # JavaScript implementation\n└── README.md\n```\n\n## Usage\n\n1. Upload a CSV file using the file input\n2. Select X and Y columns for analysis\n3. View statistics and visualization\n4. Download or export results as needed\n\n### Sample CSV Format\n```csv\nx,y\n1,2.1\n2,4.2\n3,5.9\n4,8.1\n5,9.8\n```\n\n## API Reference\n\n### Rust Functions\n\n```rust\n// Parse CSV data\nparse_csv(csv_content: \u0026str) -\u003e Result\u003cJsValue, JsValue\u003e\n\n// Get numerical values from a column\nget_column_values(csv_content: \u0026str, column_name: \u0026str) -\u003e Result\u003cVec\u003cf64\u003e, JsValue\u003e\n\n// Calculate basic statistics\ncalculate_stats(values: \u0026[f64]) -\u003e Result\u003cJsValue, JsValue\u003e\n\n// Perform linear regression\nlinear_regression(x_values: \u0026[f64], y_values: \u0026[f64]) -\u003e Result\u003cJsValue, JsValue\u003e\n\n// Complete analysis\nanalyze_data(x_column: \u0026str, y_column: \u0026str, csv_content: \u0026str) -\u003e Result\u003cJsValue, JsValue\u003e\n```\n\n## Contributing\n\n1. Duplicate the project and create your own copy.\n2. Create a dedicated branch for your feature (`git checkout -b feature/new-feature`).\n3. Save your changes (`git commit -m 'Add new functionality'`).\n4. Push to the branch (`git push origin feature/new-feature`)\n5. Open a pull request to integrate your work\n\n## License\n\nThis project is licensed under the Apache 2.0 License - see the LICENSE file for details\n\n## Acknowledgments\n\n- [wasm-bindgen](https://github.com/rustwasm/wasm-bindgen) for Rust/WebAssembly bindings\n- [Chart.js](https://www.chartjs.org/) for visualization\n- Rust CSV crate for CSV parsing\n\n## Future Improvements\n\n- [ ] Add support for more statistical analyses\n- [ ] Implement data export features\n- [ ] Add more visualization options\n- [ ] Support for larger datasets\n- [ ] Column type detection\n- [ ] Custom CSV delimiter support\n- [ ] Support other files.\n\n## Support\n\nFor support, please open an issue in the GitHub repository or contact [Email](jeffaoduro@gmail.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeffasante%2Frustviz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjeffasante%2Frustviz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeffasante%2Frustviz/lists"}