Skip to content

[Idea]: integrate stdlib into scijs packages #177

Description

@kgryte

Idea

scijs is a collection of numerical and scientific computing packages and utilities for working with multi-dimensional array data. While stdlib has surpassed scijs in terms of breadth and depth of functionality, scijs still includes a good bit of widely used functionality. One of the points of friction within the JavaScript ecosystem is the lack of interoperability between stdlib and scijs.

The goal of this idea is to integrate stdlib into applicable scijs packages, and, where appropriate, to implement scijs operations in stdlib which are not currently present. This effort will entail updating various scijs packages to accept and operate on stdlib ndarrays, and where stdlib equivalents already exist, updating the current scijs implementations to delegate to stdlib implementations (e.g., see https://github.com/scijs/ndarray-fill, which, after standardizing input arguments, could delegate to @stdlib/ndarray/fill).

For those interested in this idea, you should

  • study https://github.com/orgs/scijs/repositories?type=source
  • create a list of APIs present in scijs (e.g., in a Google spreadsheet)
  • find equivalent APIs already present in stdlib
  • identify which APIs have not already been implemented
  • identify which APIs are amenable to stdlib integration (note: not all APIs can be delegated to stdlib!)
  • describe a plan for achieving integration

Expected Outcomes

Users will be able to use scijs APIs with stdlib ndarrays and, where appropriate, scijs APIs will delegate to stdlib functionality.

Involved Software

No other software is necessary.

Prerequisite Knowledge

JavaScript, Node.js.

Difficulty

Intermediate.

Project Length

90/175/350 hours. Can be scoped accordingly.

Metadata

Metadata

Assignees

No one assigned

    Labels

    difficulty: 3Likely to be challenging but manageable.ideaPotential GSoC project idea.priority: highHigh priority.tech: javascriptInvolves programming in JavaScript.

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions