Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

QuickJSR - Portable, lightweight JavaScript engine for R #646

Closed
3 of 21 tasks
andrjohns opened this issue Jun 2, 2024 · 0 comments
Closed
3 of 21 tasks

QuickJSR - Portable, lightweight JavaScript engine for R #646

andrjohns opened this issue Jun 2, 2024 · 0 comments

Comments

@andrjohns
Copy link

andrjohns commented Jun 2, 2024

Submitting Author Name: Andrew Johnson
Submitting Author Github Handle: @andrjohns
Repository: https://github.com/andrjohns/QuickJSR
Submission type: Pre-submission
Language: en


  • Paste the full DESCRIPTION file inside a code block below:
Package: QuickJSR
Title: Interface for the 'QuickJS' Lightweight 'JavaScript' Engine
Version: 1.2.0.9000
Authors@R: c(
    person(c("Andrew", "R."), "Johnson", , "[email protected]", role = c("aut", "cre"),
           comment = c(ORCID = "0000-0001-7000-8065")),
    person("Fabrice", "Bellard", role = c("cph"),
           comment = "Author of QuickJS sources and headers"),
    person("Charlie", "Gordon", role = c("cph"),
           comment = "Author of QuickJS sources and headers")
  )
Description: An 'R' interface to the 'QuickJS' portable 'JavaScript'
    engine.  The engine and all 'R' to 'JavaScript' interoperability is bundled
    within the package, requiring no dependencies beyond a 'C' compiler.
License: MIT + file LICENSE
URL: https://github.com/andrjohns/QuickJSR, https://bellard.org/quickjs/
BugReports: https://github.com/andrjohns/QuickJSR/issues
Suggests:
    knitr,
    rmarkdown,
    tinytest
Encoding: UTF-8
Language: en-AU
NeedsCompilation: yes
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.3.1
SystemRequirements: GNU make
VignetteBuilder: knitr

Scope

  • Please indicate which category or categories from our package fit policies or statistical package categories this package falls under. (Please check one or more appropriate boxes below):

    Data Lifecycle Packages

    • data retrieval
    • data extraction
    • data munging
    • data deposition
    • data validation and testing
    • workflow automation
    • version control
    • citation management and bibliometrics
    • scientific software wrappers
    • field and lab reproducibility tools
    • database software bindings
    • geospatial data
    • text analysis

    Statistical Packages

    • Bayesian and Monte Carlo Routines
    • Dimensionality Reduction, Clustering, and Unsupervised Learning
    • Machine Learning
    • Regression and Supervised Learning
    • Exploratory Data Analysis (EDA) and Summary Statistics
    • Spatial Analyses
    • Time Series Analyses
    • Probability Distributions
  • Explain how and why the package falls under these categories (briefly, 1-2 sentences). Please note any areas you are unsure of:

Providing an R interface to JS code, and the ability to pass objects/values/functions/environments between them, allows for additional flexibility in the tools available for accessing different data APIs and existing packages/scripts (e.g., NPM) for working with them.

It might fit better under the Computing Infrastructure or HTTP Tools categories listed on the rOpenSci website, but those weren't options to choose from

Target audience would be users with existing pipelines needing JS interaction/evaluation, or JS code that they need to integrate into a package without rewriting.

Existing alternative would be V8, but that requires a system dependency (libv8) which can be difficult to install for some systems. Unlike V8, QuickJSR is also able to pass functions, environments, and closures to JS code, with no need for serialisation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant