# MATLAB Proxy
[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/mathworks/matlab-proxy/run-tests.yml?branch=main&logo=github)](https://github.com/mathworks/matlab-proxy/actions) [![PyPI badge](https://img.shields.io/pypi/v/matlab-proxy.svg?logo=pypi)](https://pypi.python.org/pypi/matlab-proxy) [![codecov](https://codecov.io/gh/mathworks/matlab-proxy/branch/main/graph/badge.svg?token=ZW3SESKCSS)](https://codecov.io/gh/mathworks/matlab-proxy) [![Downloads](https://static.pepy.tech/personalized-badge/matlab-proxy?period=month&units=international_system&left_color=grey&right_color=blue&left_text=PyPI%20downloads/month)](https://pepy.tech/project/matlab-proxy)
----
`matlab-proxy` is a Python® package which enables you to launch MATLAB® and access it from a web browser.
Installation of this package creates an executable `matlab-proxy-app`, which launches MATLAB and provides a URL to access it.
The MATLAB Proxy is under active development. For support or to report issues, see the [Feedback](#feedback) section.
----
**Table of Contents**
- [Requirements](#requirements)
- [Installation](#installation)
- [PyPI](#pypi)
- [Building From Sources](#building-from-sources)
- [Usage](#usage)
- [Examples](#examples)
- [Limitations](#limitations)
- [Security](#security)
- [Feedback](#feedback)
## Requirements
* MATLAB® R2020b or later is installed and on the system PATH.
```bash
# Confirm MATLAB is on the PATH
which matlab
```
* The dependencies required to run MATLAB.
Refer to the Dockerfiles in the [matlab-deps](https://github.com/mathworks-ref-arch/container-images/tree/master/matlab-deps) repository for the desired version of MATLAB.
* X Virtual Frame Buffer (Xvfb) : (only for Linux® based systems)
Install it on your linux machine using:
```bash
# On a Debian/Ubuntu based system:
$ sudo apt install xvfb
```
```bash
# On a RHEL based system:
$ yum search Xvfb
xorg-x11-server-Xvfb.x86_64 : A X Windows System virtual framebuffer X server.
$ sudo yum install xorg-x11-server-Xvfb
```
*Note: The installation of Xvfb is **optional** (w.e.f. v0.11.0 of matlab-proxy). However, we highly recommend installing it.*
* Python versions: **3.8** | **3.9** | **3.10** | **3.11**
* [Browser Requirements](https://www.mathworks.com/support/requirements/browser-requirements.html)
* Supported Operating Systems:
* Linux®
* Windows® Operating System ( starting v0.4.0 of matlab-proxy )
* MacOS (starting v0.5.0 of matlab-proxy )
See [Platform Support](#platform-support) for more information
## Installation
### PyPI
This repository can be installed directly from the Python Package Index.
```bash
python -m pip install matlab-proxy
```
### Building From Sources
Building from sources requires Node.js® version 16 or higher. [Click here to install Node.js](https://nodejs.org/en/)
```bash
git clone https://github.com/mathworks/matlab-proxy.git
cd matlab-proxy
python -m pip install .
```
Installing the package creates an executable called `matlab-proxy-app`, which is placed onto your system PATH by `pip`, usually in: `$HOME/.local/bin/`
```bash
# Confirm it is on the PATH
which matlab-proxy-app
```
## Usage
Once the `matlab-proxy` package is installed.
* Open a Linux terminal and launch the application with
```bash
env MWI_BASE_URL="/matlab" matlab-proxy-app
```
`MWI_BASE_URL` is an environment variable which controls the link on which MATLAB can be accessed.
For a detailed listing of all environment variables. See [Advanced-Usage.md](./Advanced-Usage.md)
Running the above command will print text out on your terminal, which will contain the URL to access MATLAB. For example:
```
Access MATLAB at
http://localhost:44549/matlab/index.html
```
* Open the the link above in a web browser. If prompted to do so, enter credentials for a MathWorks account associated with a MATLAB license. If you are using a network license manager, then change to the _Network License Manager_ tab and enter the license server address instead. To determine the appropriate method for your license type, consult [MATLAB Licensing Info](./MATLAB-Licensing-Info.md).
<p align="center">
<img width="400" src="https://github.com/mathworks/matlab-proxy/raw/main/img/licensing_GUI.png">
</p>
* Wait for the MATLAB session to start. *This can take several minutes*.
<p align="center">
<img width="800" src="https://github.com/mathworks/matlab-proxy/raw/main/img/MATLAB_Desktop.png">
</p>
* To manage the MATLAB session, click the tools icon shown below.
<p align="center">
<img width="100" src="https://github.com/mathworks/matlab-proxy/raw/main/img/tools_icon.png">
</p>
* Clicking the tools icon opens a status panel with buttons like the ones below:
<p align="center">
<img width="800" src="https://github.com/mathworks/matlab-proxy/raw/main/img/status_panel.png">
</p>
The following options are available in the status panel (some options are only available in a specific context):
| Option | Description |
| ---- | ---- |
| Start MATLAB | Start your MATLAB session. Available if MATLAB is stopped.|
| Restart MATLAB | Restart your MATLAB session. Available if MATLAB is running or starting.|
| Stop MATLAB | Stop your MATLAB session. Use this option if you want to free up RAM and CPU resources. Available if MATLAB is running or starting.|
| Sign Out | Sign out of MATLAB session. Use this to stop MATLAB and sign in with an alternative account. Available if using online licensing.|
| Unset License Server Address | Unset network license manager server address. Use this to stop MATLAB and enter new licensing information. Available if using network license manager.|
| Feedback | Provide feedback. Opens a new tab to create an issue on GitHub.|
| Help | Open a help pop-up for a detailed description of the options.|
## Examples
* For installing/usage in a Docker container, see this [Dockerfile](./examples/Dockerfile) and its [README](./examples/README.md).
* For upgrading **matlab-proxy** in an existing Docker image, see this [Dockerfile.upgrade.matlab-proxy](./examples/Dockerfile.upgrade.matlab-proxy) and its [README](./examples/README.md#upgrading-matlab-proxy-package-in-a-docker-image).*
* For usage in a Jupyter environment, see [jupyter-matlab-proxy](https://github.com/mathworks/jupyter-matlab-proxy).
## Platform Support
### Linux
This package is fully supported for the Linux Operating System.
### Windows
Windows® Operating System support was introduced in package version `v0.4.0`.
Install the version >=0.4.0 to use the package on Windows.
```bash
# To upgrade an existing installation of matlab-proxy package:
$ pip install --upgrade matlab-proxy>=0.4.0
```
### MacOS
MacOS support was introduced in package version `v0.5.0`.
It works best for MATLAB versions newer than R2022b.
Note: Figures *also* open in a separate windows on versions of MATLAB older than R2022b.
Install the version >=0.5.0 to use the package on MacOS.
```bash
# To upgrade an existing installation of matlab-proxy package:
$ pip install --upgrade matlab-proxy>=0.5.0
```
### Windows Subsystem for Linux (WSL 2)
To install `matlab-proxy` in WSL 2, follow the steps mentioned in the [Installation Guide for WSL 2](./install_guides/wsl2/README.md).
## Using an already activated MATLAB with matlab-proxy
`matlab-proxy` version `v0.7.0` introduces support for using an existing MATLAB license. Use the Existing License option only if you have an activated MATLAB. This allows you to start MATLAB without authenticating every time.
## Limitations
This package supports the same subset of MATLAB features and commands as MATLAB® Online, except there is no support for Simulink® Online.
[Click here for a full list of Specifications and Limitations for MATLAB Online](https://www.mathworks.com/products/matlab-online/limitations.html).
## Security
We take your security concerns seriously, and will attempt to address all concerns.
`matlab-proxy` uses several other python packages, and depend on them to fix their own vulnerabilities.
All security patches will be released as a new version of the package.
Patches are never backported to older versions or releases of the package.
Using the latest version will provide the latest available security updates or patches.
## Feedback
We encourage you to try this repository with your environment and provide feedback.
If you encounter a technical issue or have an enhancement request, create an issue [here](https://github.com/mathworks/matlab-proxy/issues)
---
Copyright 2020-2024 The MathWorks, Inc.
---
Raw data
{
"_id": null,
"home_page": "https://github.com/mathworks/matlab-proxy/",
"name": "matlab-proxy",
"maintainer": null,
"docs_url": null,
"requires_python": "~=3.8",
"maintainer_email": null,
"keywords": "Proxy, MATLAB Proxy, MATLAB, MATLAB Javascript Desktop, MATLAB Web Desktop, Remote MATLAB Web Access",
"author": "The MathWorks, Inc.",
"author_email": "cloud@mathworks.com",
"download_url": "https://files.pythonhosted.org/packages/c5/8a/7d9d40437091d047ca763da4bc25dac025de7a08b36ea17c8e894346f433/matlab-proxy-0.23.1.tar.gz",
"platform": null,
"description": "# MATLAB Proxy\n[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/mathworks/matlab-proxy/run-tests.yml?branch=main&logo=github)](https://github.com/mathworks/matlab-proxy/actions) [![PyPI badge](https://img.shields.io/pypi/v/matlab-proxy.svg?logo=pypi)](https://pypi.python.org/pypi/matlab-proxy) [![codecov](https://codecov.io/gh/mathworks/matlab-proxy/branch/main/graph/badge.svg?token=ZW3SESKCSS)](https://codecov.io/gh/mathworks/matlab-proxy) [![Downloads](https://static.pepy.tech/personalized-badge/matlab-proxy?period=month&units=international_system&left_color=grey&right_color=blue&left_text=PyPI%20downloads/month)](https://pepy.tech/project/matlab-proxy)\n\n----\n\n`matlab-proxy` is a Python\u00ae package which enables you to launch MATLAB\u00ae and access it from a web browser.\n\nInstallation of this package creates an executable `matlab-proxy-app`, which launches MATLAB and provides a URL to access it. \n\nThe MATLAB Proxy is under active development. For support or to report issues, see the [Feedback](#feedback) section.\n\n----\n\n**Table of Contents**\n- [Requirements](#requirements)\n- [Installation](#installation)\n - [PyPI](#pypi)\n - [Building From Sources](#building-from-sources)\n- [Usage](#usage)\n- [Examples](#examples)\n- [Limitations](#limitations)\n- [Security](#security)\n- [Feedback](#feedback)\n\n## Requirements\n* MATLAB\u00ae R2020b or later is installed and on the system PATH.\n ```bash\n # Confirm MATLAB is on the PATH\n which matlab\n ``` \n* The dependencies required to run MATLAB.\n Refer to the Dockerfiles in the [matlab-deps](https://github.com/mathworks-ref-arch/container-images/tree/master/matlab-deps) repository for the desired version of MATLAB.\n\n* X Virtual Frame Buffer (Xvfb) : (only for Linux\u00ae based systems)\n\n Install it on your linux machine using:\n ```bash\n # On a Debian/Ubuntu based system:\n $ sudo apt install xvfb\n ```\n ```bash\n # On a RHEL based system:\n $ yum search Xvfb\n xorg-x11-server-Xvfb.x86_64 : A X Windows System virtual framebuffer X server.\n\n $ sudo yum install xorg-x11-server-Xvfb\n ```\n\n *Note: The installation of Xvfb is **optional** (w.e.f. v0.11.0 of matlab-proxy). However, we highly recommend installing it.*\n* Python versions: **3.8** | **3.9** | **3.10** | **3.11**\n* [Browser Requirements](https://www.mathworks.com/support/requirements/browser-requirements.html)\n* Supported Operating Systems:\n * Linux\u00ae\n * Windows\u00ae Operating System ( starting v0.4.0 of matlab-proxy )\n * MacOS (starting v0.5.0 of matlab-proxy ) \nSee [Platform Support](#platform-support) for more information \n\n## Installation\n\n### PyPI\nThis repository can be installed directly from the Python Package Index.\n```bash\npython -m pip install matlab-proxy\n```\n\n### Building From Sources\nBuilding from sources requires Node.js\u00ae version 16 or higher. [Click here to install Node.js](https://nodejs.org/en/)\n\n```bash\ngit clone https://github.com/mathworks/matlab-proxy.git\n\ncd matlab-proxy\n\npython -m pip install .\n```\n\nInstalling the package creates an executable called `matlab-proxy-app`, which is placed onto your system PATH by `pip`, usually in: `$HOME/.local/bin/`\n```bash\n# Confirm it is on the PATH\nwhich matlab-proxy-app\n```\n\n## Usage\n\nOnce the `matlab-proxy` package is installed.\n\n* Open a Linux terminal and launch the application with\n ```bash\n env MWI_BASE_URL=\"/matlab\" matlab-proxy-app\n ```\n `MWI_BASE_URL` is an environment variable which controls the link on which MATLAB can be accessed.\n For a detailed listing of all environment variables. See [Advanced-Usage.md](./Advanced-Usage.md)\n\n Running the above command will print text out on your terminal, which will contain the URL to access MATLAB. For example:\n ```\n Access MATLAB at \n http://localhost:44549/matlab/index.html\n ```\n\n* Open the the link above in a web browser. If prompted to do so, enter credentials for a MathWorks account associated with a MATLAB license. If you are using a network license manager, then change to the _Network License Manager_ tab and enter the license server address instead. To determine the appropriate method for your license type, consult [MATLAB Licensing Info](./MATLAB-Licensing-Info.md).\n<p align=\"center\">\n <img width=\"400\" src=\"https://github.com/mathworks/matlab-proxy/raw/main/img/licensing_GUI.png\">\n</p>\n\n* Wait for the MATLAB session to start. *This can take several minutes*.\n<p align=\"center\">\n <img width=\"800\" src=\"https://github.com/mathworks/matlab-proxy/raw/main/img/MATLAB_Desktop.png\">\n</p>\n\n* To manage the MATLAB session, click the tools icon shown below.\n<p align=\"center\">\n <img width=\"100\" src=\"https://github.com/mathworks/matlab-proxy/raw/main/img/tools_icon.png\">\n</p>\n\n* Clicking the tools icon opens a status panel with buttons like the ones below:\n<p align=\"center\">\n <img width=\"800\" src=\"https://github.com/mathworks/matlab-proxy/raw/main/img/status_panel.png\">\n</p>\n\nThe following options are available in the status panel (some options are only available in a specific context):\n\n| Option | Description |\n| ---- | ---- |\n| Start MATLAB | Start your MATLAB session. Available if MATLAB is stopped.|\n| Restart MATLAB | Restart your MATLAB session. Available if MATLAB is running or starting.|\n| Stop MATLAB | Stop your MATLAB session. Use this option if you want to free up RAM and CPU resources. Available if MATLAB is running or starting.|\n| Sign Out | Sign out of MATLAB session. Use this to stop MATLAB and sign in with an alternative account. Available if using online licensing.|\n| Unset License Server Address | Unset network license manager server address. Use this to stop MATLAB and enter new licensing information. Available if using network license manager.|\n| Feedback | Provide feedback. Opens a new tab to create an issue on GitHub.|\n| Help | Open a help pop-up for a detailed description of the options.|\n\n## Examples\n* For installing/usage in a Docker container, see this [Dockerfile](./examples/Dockerfile) and its [README](./examples/README.md).\n* For upgrading **matlab-proxy** in an existing Docker image, see this [Dockerfile.upgrade.matlab-proxy](./examples/Dockerfile.upgrade.matlab-proxy) and its [README](./examples/README.md#upgrading-matlab-proxy-package-in-a-docker-image).*\n* For usage in a Jupyter environment, see [jupyter-matlab-proxy](https://github.com/mathworks/jupyter-matlab-proxy).\n\n## Platform Support\n\n### Linux\nThis package is fully supported for the Linux Operating System.\n\n### Windows\n\nWindows\u00ae Operating System support was introduced in package version `v0.4.0`.\nInstall the version >=0.4.0 to use the package on Windows.\n```bash\n# To upgrade an existing installation of matlab-proxy package:\n$ pip install --upgrade matlab-proxy>=0.4.0\n```\n\n### MacOS\n\nMacOS support was introduced in package version `v0.5.0`. \nIt works best for MATLAB versions newer than R2022b.\nNote: Figures *also* open in a separate windows on versions of MATLAB older than R2022b.\n\nInstall the version >=0.5.0 to use the package on MacOS.\n\n```bash\n# To upgrade an existing installation of matlab-proxy package:\n$ pip install --upgrade matlab-proxy>=0.5.0\n```\n\n### Windows Subsystem for Linux (WSL 2)\n\nTo install `matlab-proxy` in WSL 2, follow the steps mentioned in the [Installation Guide for WSL 2](./install_guides/wsl2/README.md).\n\n## Using an already activated MATLAB with matlab-proxy\n`matlab-proxy` version `v0.7.0` introduces support for using an existing MATLAB license. Use the Existing License option only if you have an activated MATLAB. This allows you to start MATLAB without authenticating every time.\n\n## Limitations\nThis package supports the same subset of MATLAB features and commands as MATLAB\u00ae Online, except there is no support for Simulink\u00ae Online.\n[Click here for a full list of Specifications and Limitations for MATLAB Online](https://www.mathworks.com/products/matlab-online/limitations.html). \n\n## Security\nWe take your security concerns seriously, and will attempt to address all concerns.\n`matlab-proxy` uses several other python packages, and depend on them to fix their own vulnerabilities.\n\nAll security patches will be released as a new version of the package.\nPatches are never backported to older versions or releases of the package.\nUsing the latest version will provide the latest available security updates or patches.\n\n## Feedback\n\nWe encourage you to try this repository with your environment and provide feedback. \nIf you encounter a technical issue or have an enhancement request, create an issue [here](https://github.com/mathworks/matlab-proxy/issues)\n\n---\n\nCopyright 2020-2024 The MathWorks, Inc.\n\n---\n\n\n",
"bugtrack_url": null,
"license": "MATHWORKS CLOUD REFERENCE ARCHITECTURE LICENSE",
"summary": "Python\u00ae package enables you to launch MATLAB\u00ae and access it from a web browser.",
"version": "0.23.1",
"project_urls": {
"Homepage": "https://github.com/mathworks/matlab-proxy/"
},
"split_keywords": [
"proxy",
" matlab proxy",
" matlab",
" matlab javascript desktop",
" matlab web desktop",
" remote matlab web access"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "dfb70dcc92777817d49bc520849d2a0ebeff11b63596f9390a77abc97a107005",
"md5": "9e1c0664897ea7505f0d3873405c56be",
"sha256": "18fd949b136853088c6aac4dd5a9fcaa3ace09ce909c5beeecb3a438e727f862"
},
"downloads": -1,
"filename": "matlab_proxy-0.23.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "9e1c0664897ea7505f0d3873405c56be",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "~=3.8",
"size": 1251320,
"upload_time": "2024-09-27T06:57:49",
"upload_time_iso_8601": "2024-09-27T06:57:49.709948Z",
"url": "https://files.pythonhosted.org/packages/df/b7/0dcc92777817d49bc520849d2a0ebeff11b63596f9390a77abc97a107005/matlab_proxy-0.23.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c58a7d9d40437091d047ca763da4bc25dac025de7a08b36ea17c8e894346f433",
"md5": "7fe2ce6827bbd4fdac560968629d3098",
"sha256": "1fffa5e8c3bdafa0d851c2a0c0bc38755dbe88ab56a725fb129f35074ca665fb"
},
"downloads": -1,
"filename": "matlab-proxy-0.23.1.tar.gz",
"has_sig": false,
"md5_digest": "7fe2ce6827bbd4fdac560968629d3098",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "~=3.8",
"size": 1174698,
"upload_time": "2024-09-27T06:57:51",
"upload_time_iso_8601": "2024-09-27T06:57:51.836004Z",
"url": "https://files.pythonhosted.org/packages/c5/8a/7d9d40437091d047ca763da4bc25dac025de7a08b36ea17c8e894346f433/matlab-proxy-0.23.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-27 06:57:51",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "mathworks",
"github_project": "matlab-proxy",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"lcname": "matlab-proxy"
}