{"id":24905804,"url":"https://github.com/mjovanc/numru","last_synced_at":"2025-04-04T08:08:05.926Z","repository":{"id":274651063,"uuid":"923592819","full_name":"mjovanc/numru","owner":"mjovanc","description":"A high-performance numeric computation library.","archived":false,"fork":false,"pushed_at":"2025-02-17T08:29:40.000Z","size":116,"stargazers_count":111,"open_issues_count":2,"forks_count":29,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-23T00:38:51.730Z","etag":null,"topics":["numru","rust"],"latest_commit_sha":null,"homepage":"https://numru.rs","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mjovanc.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":"2025-01-28T14:27:15.000Z","updated_at":"2025-02-17T08:29:44.000Z","dependencies_parsed_at":"2025-01-30T13:30:18.275Z","dependency_job_id":null,"html_url":"https://github.com/mjovanc/numru","commit_stats":null,"previous_names":["kur08/numru","mjovanc/numru"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjovanc%2Fnumru","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjovanc%2Fnumru/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjovanc%2Fnumru/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjovanc%2Fnumru/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mjovanc","download_url":"https://codeload.github.com/mjovanc/numru/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241801207,"owners_count":20022384,"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":["numru","rust"],"created_at":"2025-02-02T00:25:13.376Z","updated_at":"2025-03-04T08:01:27.635Z","avatar_url":"https://github.com/mjovanc.png","language":"Rust","funding_links":[],"categories":["Libraries","Rust"],"sub_categories":["Data processing"],"readme":"# numru\n\n![ci](https://img.shields.io/github/actions/workflow/status/mjovanc/numru/ci.yml?branch=main)\n![crates.io](https://img.shields.io/crates/v/numru.svg)\n[![documentation](https://img.shields.io/badge/docs-numru-blue?logo=rust)](https://docs.rs/numru/latest/)\n\nA high-performance numeric computation library written in Rust.\n\n## Motivation\n\nNumru is a numeric computation library that aims to provide a high-performance, easy-to-use, and flexible API for numerical operations.\nIt is inspired by NumPy, a popular numerical computation library in Python. Numru is designed to be a fundamental library for numeric computing with Rust.\n\n## Get Started\n\nThis getting started guide might change and should not be a source of absolute truth.\nCheck the unit tests and in `examples` if you want to stay up to date with how things should be done. Some APIs will most likely be changed in the future.\n\n```toml\n[dependencies]\nnumru = \"0.2.0\"\n```\n\nAnd a simple code:\n\n```rust\nuse numru::arr;\nuse std::f64::consts::{E, PI, TAU};\n\nfn main() {\n    let a = arr![42, -17, 256, 3, 99, -8];\n    println!(\"a.shape() = {:?}\", a.shape());\n    a.visualize().execute();\n\n    let b = arr![[TAU, -PI, 1.61], [E, 0.98, -7.42], [4.67, -0.45, 8.88]];\n    println!(\"\\nb.shape() = {:?}\", b.shape());\n    b.visualize()\n        .decimal_points(1)\n        .execute();\n\n    let c = arr![\n        [[101, 202, 303], [404, 505, 606]],\n        [[-707, -808, -909], [111, 222, 333]]\n    ];\n    println!(\"\\nc.shape() = {:?}\", c.shape());\n    c.visualize().execute();\n}\n```\n\nOutput of the code above:\n\n```shell\na.shape() = Ix { dims: [6] }\n[42, -17, 256, 3, 99, -8]\n\nb.shape() = Ix { dims: [3, 3] }\n[\n   [6.3, -3.1, 1.6 ]\n   [2.7, 1.0 , -7.4]\n   [4.7, -0.5, 8.9 ]\n]\n\nc.shape() = Ix { dims: [2, 2, 3] }\n[\n   [\n      [101 , 202 , 303 ]\n      [404 , 505 , 606 ]\n   ]\n   [\n      [-707, -808, -909]\n      [111 , 222 , 333 ]\n   ]\n]\n```\n\n## Features\n\nNumru will offer a variety of different numerical operations and data types. It is intended to be a fundamental library for numeric computing with Rust.\n\n### Supported Data Types\n\n- i64\n- f64\n\n### Planned Data Types (Future)\n\n- i8, i16, i32, i128\n- u8, u16, u32, u64, u128\n- f32\n- bool\n- String, \u0026str\n\n### Supported Operations\n\nNote that currently we only show the numru equivalents as the ones that are planned. They do not exist yet.\n\n| **Operation**          | **Type**              | **NumPy Equivalent**             | **Numru Equivalent**             |\n|--------------------|-------------------|-----------------------------|------------------------------|\n| Create Array   | Array Creation    | `np.array([1, 2, 3])`       | `arr![1, 2, 3]`             |\n| Zeros Array    | Array Creation    | `np.zeros((3,3))`           | `zeros!(i64, 3, 3)`         |\n| Ones Array     | Array Creation    | `np.ones((3,3))`            | `ones!(i64, 3, 3)`                           |\n| Arange         | Array Creation    | `np.arange(start, stop, step)` | 🚧                       |\n| Linspace       | Array Creation    | `np.linspace(start, stop, num)` | 🚧                      |\n| Mean          | Reduction         | `np.mean(a)`                | `a.mean().compute()`        |\n| Min           | Reduction         | `np.min(a)`                 | `a.min().compute()`         |\n| Max           | Reduction         | `np.max(a)`                 | `a.max().compute()`         |\n| Dot Product    | Linear Algebra    | `np.dot(a, b)`              | 🚧                           |\n| Reshape        | Manipulation      | `a.reshape((4, 3, 3))`      | 🚧                           |\n| Concatenate    | Manipulation      | `np.concatenate([a, b], axis=0)` | 🚧                   |\n| Element-wise Add | Element-wise Ops | `a + b`                     | 🚧                           |\n| Element-wise Sub | Element-wise Ops | `a - b`                     | 🚧                           |\n| Element-wise Mul | Element-wise Ops | `a * b`                     | 🚧                           |\n| Element-wise Div | Element-wise Ops | `a / b`                     | 🚧                           |\n\n### Utility Features\n\nThese utility features help with visualization, debugging, array exploration and more.\n\n| **Feature**              | **Type**               | **Numru**                                      | **Description**                                      |\n|----------------------|-------------------|--------------------------------------------|--------------------------------------------------|\n| Visualization    | Visualization   | `a.visualize().execute()`                 | Print an array in a human-readable format       |\n| Shape Inspection | Introspection     | `a.shape()`                               | Get the shape of the array                      |\n| Data Type Check  | Introspection     | `a.dtype()`                            | Retrieve the data type of the array             |\n\n## License\n\nThe MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmjovanc%2Fnumru","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmjovanc%2Fnumru","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmjovanc%2Fnumru/lists"}