Skip to content

Latest commit

 

History

History
147 lines (104 loc) · 9.46 KB

File metadata and controls

147 lines (104 loc) · 9.46 KB

Test Dependency Vulnerability Scan

OneWare Studio - The Next Generation IDE for Electronics Development

Using .NET 10.0 And Avalonia

image

image

image

About

OneWare Studio is the next generation IDE for electronics development. It supports a broad range of development languages including VHDL, Verilog, C++, and more. It is designed to streamline electronics development with features like a high-speed simulation viewer and advanced debugging tools. OneWare Studio also offers extensive customization with an extensible architecture for custom tools and strong support for digital twin technology, making it ideal for firmware and hardware development across diverse applications.

These are a few of the current features:

  • Comprehensive support for VHDL and Verilog for streamlined digital design
  • Vendor-independent support for FPGA development
  • Support for simulation tools like GHDL or IVerilog with a integrated high-speed, multithreaded VCD Viewer
  • Extensible architecture to unlock additional functionality and hardware support with custom extensions
  • All the features you would expect from a modern IDE, with built-in GIT support

Download

Download and get started here!

Get it from the Snap Store

Get it from Flathub

Try out the One AI Extension now!

With ONE AI, anyone can create custom AI models in minutes without AI expertise. Train powerful models on our cloud servers, then deploy lightweight, optimized models that run efficiently on any device - even resource-limited microcontrollers.

image

quick-start.webm

More information about One AI here

Status

Publish Studio Desktop for Windows
Publish Studio Desktop for MacOS
Publish Studio Desktop for Linux
Publish Studio Web

Publish Studio Desktop for Windows in WinGet
Publish Studio Desktop for Linux in Snap Store
Publish Studio Desktop for Linux in Flathub

Build

  1. Install .NET SDK 10.0
  2. Clone this repo git clone --recursive https://github.com/one-ware/OneWare.git
  3. cd OneWare/studio/OneWare.Studio.Desktop
  4. dotnet run

Configuration profiles

A configuration profile (*.onewareconfig) captures IDE settings (including custom package sources) and installed packages. Export one from a configured installation via Extras → Export Configuration..., then have every deployed machine apply it automatically by setting ONEWARE_CONFIGURATION_PROFILE — either in OneWareStudio.defaults.json above, as a real environment variable, or via the --configuration-profile argument:

OneWareStudio --configuration-profile /workspace/team.onewareconfig
OneWareStudio --configuration-profile https://config.example.com/team.onewareconfig

The value is a local file path or an http(s) URL, so a profile can be served centrally and updated without touching each machine.

By default a profile is applied only when its content differs from the last profile applied on that machine, so it will not overwrite settings the user changed afterwards. Set ONEWARE_CONFIGURATION_PROFILE_MODE to always to re-apply on every launch instead:

{
  "ONEWARE_CONFIGURATION_PROFILE": "https://config.example.com/team.onewareconfig",
  "ONEWARE_CONFIGURATION_PROFILE_MODE": "always"
}

Packages that are already installed are left untouched, and a profile that cannot be downloaded or parsed is logged and skipped rather than blocking startup. A package entry without a version installs the latest stable version. Settings that are only read while the application starts take effect on the next launch.

Python support

Python source and stub files (.py / .pyi) use Pyrefly. With automatic binary downloads enabled under Settings > Experimental > Environment, opening a Python file installs the pinned native language server. Alternatively, install Pyrefly from Package Manager or set Settings > Languages > Python > Pyrefly Path. Native packages are provided for Windows, Linux, and macOS on x64 and ARM64; pip and Node are not needed to host the server. The former pylsp integration and its executable-path setting are no longer used.

Use Code > Python > Select Interpreter... or the Python: Select Interpreter command to choose an existing interpreter for the active Python file's workspace (or the active project). The picker lists detected environments and supports browsing, refreshing, and returning to Automatic. Selections are saved in this machine's IDE settings, not written into the project.

Automatic resolution uses the workspace's .venv, then venv, then Settings > Languages > Python > Default Python interpreter, then Python on PATH. An explicit workspace selection overrides that chain. Missing explicit selections are reported and pause Python language analysis rather than silently selecting a different interpreter. With no Python installation and no explicit selection, available Pyrefly analysis remains usable, but third-party imports cannot be resolved reliably. OneWare does not install Python runtimes or create virtual environments.

Interpreter changes update the workspace's analysis without reopening files. Pyrefly project configuration can take precedence over the IDE's interpreter fallback, including an explicit project interpreter or skip-interpreter-query. Type-checking strictness follows Pyrefly's project configuration and upstream defaults. The interpreter selection configures language analysis, not terminal activation or a Python run/debug configuration. Basic newline indentation and # commenting work independently of the server. Pyrefly does not supply document formatting; Ruff/formatter integration is not included.

Nuget

Package Download
OneWare.Essentials NuGet Version
OneWare.Settings NuGet Version
OneWare.UniversalFpgaProjectSystem NuGet Version
OneWare.OssCadSuiteIntegration NuGet Version
OneWare.Vcd.Parser NuGet Version
OneWare.Vcd.Viewer NuGet Version
OneWare.WaveFormViewer NuGet Version
OneWare.Templates NuGet Version

Contributing

Documentation Coming soon!

License

OneWare is licensed under the Apache License 2.0

Community

Join our growing community!