{"id":20713847,"url":"https://github.com/diffplug/matconsolectl","last_synced_at":"2025-10-08T07:39:21.540Z","repository":{"id":27539704,"uuid":"31021129","full_name":"diffplug/matconsolectl","owner":"diffplug","description":"Control MATLAB from Java, forked from matlabcontrol","archived":false,"fork":false,"pushed_at":"2025-05-27T21:41:29.000Z","size":3347,"stargazers_count":48,"open_issues_count":2,"forks_count":16,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-10-08T07:39:21.287Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/diffplug.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2015-02-19T15:18:51.000Z","updated_at":"2025-08-13T11:12:58.000Z","dependencies_parsed_at":"2022-09-02T11:10:28.652Z","dependency_job_id":"3ca42fd7-c799-4601-995c-07481ec2fee9","html_url":"https://github.com/diffplug/matconsolectl","commit_stats":null,"previous_names":["diffplug/matlabcontrol"],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/diffplug/matconsolectl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diffplug%2Fmatconsolectl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diffplug%2Fmatconsolectl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diffplug%2Fmatconsolectl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diffplug%2Fmatconsolectl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/diffplug","download_url":"https://codeload.github.com/diffplug/matconsolectl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diffplug%2Fmatconsolectl/sbom","scorecard":{"id":341666,"data":{"date":"2025-08-11","repo":{"name":"github.com/diffplug/matconsolectl","commit":"cb0008780465c90be5e593b83991123663586ef8"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.5,"checks":[{"name":"Code-Review","score":2,"reason":"Found 2/9 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/changelog-print.yml:1","Warn: no topLevel permission defined: .github/workflows/deploy.yml:1","Warn: no topLevel permission defined: .github/workflows/gradle-build.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/gradle-wrapper-validation.yml:15","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/changelog-print.yml:10: update your workflow using https://app.stepsecurity.io/secureworkflow/diffplug/matconsolectl/changelog-print.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/changelog-print.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/diffplug/matconsolectl/changelog-print.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/changelog-print.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/diffplug/matconsolectl/changelog-print.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/deploy.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/diffplug/matconsolectl/deploy.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/deploy.yml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/diffplug/matconsolectl/deploy.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/deploy.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/diffplug/matconsolectl/deploy.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/gradle-build.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/diffplug/matconsolectl/gradle-build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/gradle-build.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/diffplug/matconsolectl/gradle-build.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/gradle-build.yml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/diffplug/matconsolectl/gradle-build.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/gradle-build.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/diffplug/matconsolectl/gradle-build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/gradle-wrapper-validation.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/diffplug/matconsolectl/gradle-wrapper-validation.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/gradle-wrapper-validation.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/diffplug/matconsolectl/gradle-wrapper-validation.yml/main?enable=pin","Info:   0 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   5 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Binary-Artifacts","score":9,"reason":"binaries present in source code","details":["Warn: binary detected: gradle/wrapper/gradle-wrapper.jar:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 24 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-18T06:03:01.397Z","repository_id":27539704,"created_at":"2025-08-18T06:03:01.397Z","updated_at":"2025-08-18T06:03:01.397Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278909715,"owners_count":26066887,"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","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":"2024-11-17T02:27:39.816Z","updated_at":"2025-10-08T07:39:21.518Z","avatar_url":"https://github.com/diffplug.png","language":"Java","readme":"# \u003cimg align=\"left\" src=\"matconsolectl.png\"\u003e MatConsoleCtl: Control MATLAB from Java\n\n\u003c!---freshmark shields\noutput = [\n\tlink(shield('Maven artifact', 'mavenCentral', '{{group}}:{{name}}', 'blue'), 'https://bintray.com/{{org}}/opensource/{{name}}/view'),\n\tlink(shield('Latest version', 'latest', '{{stable}}', 'blue'), 'https://github.com/{{org}}/{{name}}/releases/latest'),\n\tlink(shield('Javadoc', 'javadoc', 'OK', 'blue'), 'https://{{org}}.github.io/{{name}}/javadoc/{{stable}}/'),\n\tlink(shield('License Apache', 'license', 'BSD', 'blue'), 'https://tldrlegal.com/license/bsd-3-clause-license-(revised)'),\n\t'',\n\tlink(shield('Changelog', 'changelog', '{{version}}', 'brightgreen'), 'CHANGES.md'),\n\tlink(image('Travis CI', 'https://travis-ci.org/{{org}}/{{name}}.svg?branch=master'), 'https://travis-ci.org/{{org}}/{{name}}')\n\t].join('\\n');\n--\u003e\n[![Maven artifact](https://img.shields.io/badge/mavenCentral-com.diffplug.matsim%3Amatconsolectl-blue.svg)](https://bintray.com/diffplug/opensource/matconsolectl/view)\n[![Latest version](https://img.shields.io/badge/latest-4.6.0-blue.svg)](https://github.com/diffplug/matconsolectl/releases/latest)\n[![Javadoc](https://img.shields.io/badge/javadoc-OK-blue.svg)](https://diffplug.github.io/matconsolectl/javadoc/4.6.0/)\n[![License Apache](https://img.shields.io/badge/license-BSD-blue.svg)](https://tldrlegal.com/license/bsd-3-clause-license-(revised))\n\n[![Changelog](https://img.shields.io/badge/changelog-4.7.0--SNAPSHOT-brightgreen.svg)](CHANGES.md)\n[![Travis CI](https://travis-ci.org/diffplug/matconsolectl.svg?branch=master)](https://travis-ci.org/diffplug/matconsolectl)\n\u003c!---freshmark /shields --\u003e\n\nMatConsoleCtl is a Java API that allows calling MATLAB from Java. You can `eval`, `feval`, as well as `get` and `set` variables. Interaction can be performed from either inside MATLAB or outside MATLAB (both by starting a new MATLAB or by connecting to an existing MATLAB).\n\n\u003c!---freshmark javadoc\noutput = prefixDelimiterReplace(input, 'https://{{org}}.github.io/{{name}}/javadoc/', '/', stable);\noutput = prefixDelimiterReplace(output, \"version = '\", \"';\", stable);\noutput = prefixDelimiterReplace(output, 'java -jar matconsolectl-', '.jar', stable);\n--\u003e\n\n```java\nMatlabProxyFactoryOptions.Builder builder = new MatlabProxyFactoryOptions.Builder();\n// setup the factory\n//    setCopyPasteCallback() connects to an existing MATLAB by copy-pasting a few lines into the command window\n//    setUsePreviouslyControlledSession() starts a new MATLAB or connects to a previously started MATLAB without any user intervention\n\nMatlabProxyFactory factory = new MatlabProxyFactory(builder.build());\n// get the proxy\nMatlabProxy proxy = factory.getProxy();\n// do stuff over the proxy\nproxy.eval(\"disp('hello world!)\")\nproxy.setVariable(\"a\", 5.0);\nObject a = proxy.getVariable(\"a\");\ndouble actual = ((double[]) result)[0];\nassert(actual == 5.0)\n// disconnect the proxy\nproxy.disconnect();\n```\n\nJavadoc links for [MatlabProxyFactoryOptions.Builder](http://diffplug.github.io/matconsolectl/javadoc/snapshot/matlabcontrol/MatlabProxyFactoryOptions.Builder.html) and [MatlabProxy](http://diffplug.github.io/matconsolectl/javadoc/snapshot/matlabcontrol/MatlabProxy.html).\n\nContributions are welcome, see the [contributing guide](CONTRIBUTING.md) for development info.\n\n## Demo\n\nMatConsoleCtl includes a demo GUI.  Below is a script you can use to run the demo inside of MATLAB:\n\n```matlab\nversion = '4.6.0';\ntempdir = 'matconsolectl_demo';\n\n% make a directory to copy the jar into\nmkdir(tempdir);\n% download the jar\nURL = ['https://repo1.maven.org/maven2/com/diffplug/matsim/matconsolectl/' version '/matconsolectl-' version '.jar'];\nfilename = [tempdir '/matconsolectl-' version '.jar'];\nwebsave(filename,URL);\n% add it to the path\njavaaddpath([pwd '\\' filename]);\n\n% run it\nmatlabcontrol.demo.DemoMain\n```\n\nYou can also run the demo outside of MATLAB by downloading the jar, then running `java -jar matconsolectl-4.6.0.jar` at a console.\n\n## Compatibility\n\nMatConsoleCtl works on Win/Mac/Linux, MATLAB R2007b through R2016b, and it will continue to work so long as MATLAB maintains the Java MATLAB Interface.\\*\n\n\\* On OS X 10.5, R2009a and earlier, you will need to do some hacking.  matlabcontrol requires Java 6, and Apple only released 64-bit Java 6 for OS X 10.5, while MATLAB only released 32-bit MATLAB for R2009a and earlier.  There are unofficial ways to run 32-bit Java 6 on OS X 10.5.\n\n\u003c!---freshmark /javadoc --\u003e\n\n## Acknowledgements\n\nThis is forked from the matlabcontrol project originally maintained on the now-defunct [Google Code](https://code.google.com/p/matlabcontrol/).  The name was changed to ensure that we don't infringe the original project's license, but we did not change the package names, so this project is binary compatible with the original matlabcontrol.  We are very thankful to Joshua Kaplan for creating matlabcontrol, but this fork is in no way associated with or endorsed by any authors of the original project.\n\nWe have fixed some bugs and added some features (see the [changelog](CHANGES.md)), and we will maintain this library into the future.  We're happy to accept [pull requests](CONTRIBUTING.md) too!\n\n* Formatted by [spotless](https://github.com/diffplug/spotless), [as such](https://github.com/diffplug/matconsolectl/blob/v4.4.1/build.gradle?ts=4#L169-L189).\n* Bugs found by [findbugs](http://findbugs.sourceforge.net/), [as such](https://github.com/diffplug/matconsolectl/blob/v4.4.1/build.gradle?ts=4#L191-L215).\n* OSGi metadata generated by JRuyi's [osgibnd-gradle-plugin] (https://github.com/jruyi/osgibnd-gradle-plugin), which leverages Peter Kriens' [bnd](http://www.aqute.biz/Bnd/Bnd).\n* Scripts in the `.ci` folder are inspired by [Ben Limmer's work](http://benlimmer.com/2013/12/26/automatically-publish-javadoc-to-gh-pages-with-travis-ci/).\n* Built by [gradle](http://gradle.org/).\n* Tested by [junit](http://junit.org/).\n* Maintained by [DiffPlug](http://www.diffplug.com/).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiffplug%2Fmatconsolectl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdiffplug%2Fmatconsolectl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiffplug%2Fmatconsolectl/lists"}