Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

RuyiSDK Logo

Ruyi

The package manager for RuyiSDK.

GitHub Actions Workflow Status GitHub License Python Version GitHub Tag

Installation and usage

You can get pre-built binaries of ruyi from GitHub Releases or the RuyiSDK mirror for easier testing. Rename the downloaded file to ruyi, make it executable, put inside your $PATH and you're ready to go.

You can browse the documentation at the dedicated RuyiSDK docs site (only available in Chinese right now).

Configuration

Various aspects of ruyi can be configured with files or environment variables.

Config search path

ruyi respects $XDG_CONFIG_HOME and $XDG_CONFIG_DIRS settings, and will look up its config accordingly. If these are not explicitly set though, as in typical use cases, the default config directory is most likely ~/.config/ruyi.

Config file

Currently ruyi will look for an optional config.toml in its XDG config directory. The file, if present, looks like this, with all values being default:

[packages]
# Consider pre-release versions when matching packages in repositories.
prereleases = false

[repo]
# Path to the local RuyiSDK metadata repository. Must be absolute or the setting
# will be ignored.
# If unset or empty, $XDG_CACHE_HOME/ruyi/packages-index is used.
local = ""
# Remote location of RuyiSDK metadata repository.
# If unset or empty, this default value is used.
remote = "https://github.com/ruyisdk/packages-index.git"
# Name of the branch to use.
# If unset or empty, this default value is used.
branch = "main"

[telemetry]
# Whether to collect telemetry information for improving RuyiSDK's developer
# experience, and whether to send the data periodically to RuyiSDK team.
# Valid values are `local`, `off` and `on` -- see the documentation for
# details.
#
# If unset or empty, this default value is used: data will be collected and
# uploaded every week, on a random weekday determined by the installation's
# anonymous ID alone.
mode = "on"
# The time the user's consent is given to telemetry data uploading. If the
# system time is later than the time given here, telemetry consent banner will
# not be displayed any more each time `ruyi` is executed. The exact consent
# time is also useful should the telemetry policy get updated in the future.
#
# To hide the consent banner, set it to the current local time, for example:
#
#     upload_consent = 2024-12-02T15:61:00+08:00
#
# The timestamp is intentionally invalid for you to notice and modify to your
# need.
upload_consent = ""
# Override the telemetry server URL of the RuyiSDK package manager scope.
# If unset, the repo-configured default is used; if set to empty, telemetry
# uploading is disabled.
#pm_telemetry_url = ""

Environment variables

Currently the following environment variables are supported by ruyi:

  • RUYI_TELEMETRY_OPTOUT -- boolean, whether to opt-out of telemetry.
  • RUYI_VENV -- string, explicitly specifies the Ruyi virtual environment to use.

For boolean variables, the values 1, true, x, y or yes (all case-insensitive) are all treated as "true".

Telemetry

The Ruyi package manager collects usage data in order to help us improve your experience. It is collected by the RuyiSDK team and shared with the community. You can opt-out of telemetry by setting the RUYI_TELEMETRY_OPTOUT environment variable to any of 1, true, x, y or yes using your favorite shell. Opting out of telemetry is equivalent to the off mode described below.

There are 3 telemetry modes available:

  • local: data will be collected but not uploaded without user action.
  • off: data will not be collected nor uploaded.
  • on: data will be collected and periodically uploaded.

By default the on mode is active, which means every ruyi invocation will record some non-sensitive information locally alongside various other states of ruyi, and collected data will be periodically uploaded to servers managed by the RuyiSDK team in the People's Republic of China, in a weekly fashion. The upload will happen on a random weekday which is determined by the installation's anonymous ID alone.

You can change the telemetry mode by editing ruyi's config file, or simply by setting the RUYI_TELEMETRY_OPTOUT environment variable to any of the values accepted as truthy.

We collect the following information with ruyi:

  • the running machine's basic information:
    • architecture and OS
    • if architecture is RISC-V:
      • ISA capabilities
      • model name of the board
      • number of logical CPUs
    • OS release ID (roughly equals the distribution type)
    • type and version of libc
    • type of the shell (bash, fish, zsh, etc.)
  • the version of ruyi on data upload time
  • invocation patterns of various ruyi subcommands:
    • without exposing any parameters
    • invocation time is recorded with a granularity of 1 minute

You can see our Privacy Policy on the RuyiSDK website.

Contributing

We welcome contributions to Ruyi! Please see our contribution guidelines (中文) for details on how to get started.

License

Copyright © 2023-2024 Institute of Software, Chinese Academy of Sciences (ISCAS). All rights reserved.

ruyi is licensed under the Apache 2.0 license.

The one-file binary distribution of ruyi contains code licensed under the Mozilla Public License 2.0. You can get the respective project's sources from the project's official website:

All trademarks referenced herein are property of their respective holders.

Metadata

Release files for ruyi 0.39.0a20250731

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ruyi 0.39.0a20250731
File Size Uploaded
ruyi-0.39.0a20250731.tar.gz 120.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ruyi 0.39.0a20250731
File Interpreter ABI Platform
ruyi-0.39.0a20250731-py3-none-any.whl Python 3 none any Details

Total release size: 272.6 kB

Release files / ruyi-0.39.0a20250731.tar.gz

Download URL ruyi-0.39.0a20250731.tar.gz
Size 120.6 kB
Tags Source
SHA-256 checksum
How to use checksums
42e8598291ce7cfee1f8cdf8b374c98f90239ee69bb881fed96a8479b859d9d1
BLAKE2b-256 checksum
How to use checksums
bc2366b513756eff2ad89c4541fa3bcd07f37fe1252570786e502430232a49bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 31, 2025.

Transparency log

Release files / ruyi-0.39.0a20250731-py3-none-any.whl

Download URL ruyi-0.39.0a20250731-py3-none-any.whl
Size 152.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c9736d64da04f72fc6f23b9f4fe10d047a5420c5b4d49776cf75223ccb834f3c
BLAKE2b-256 checksum
How to use checksums
e8fd91a818d8cae4cfe18136031c8915c7c5a9c1aebedd9a8f47b9e0d5473829
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 31, 2025.

Transparency log

Release history Release notifications | RSS feed

0.53.0

2 release files

0.51.0

2 release files

0.50.0

2 release files

0.49.0

2 release files

0.48.0

2 release files

0.47.0

2 release files

0.46.0

2 release files

0.45.0

2 release files

0.44.0

2 release files

0.43.0

2 release files

0.42.0

2 release files

0.41.0

2 release files

0.39.0

2 release files

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page