Code Monkey home page Code Monkey logo

mow's People

Contributors

crstian19 avatar korkje avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

mow's Issues

Must run as root to use

Hey there,
I just got this program, and I quickly ran into a big issue -- I have to run all of these commands as root.

This is a pretty large barrier, because it means I can't integrate this into my desktop (mouse battery bar module, scripts to quickly change settings, etc)

I looked around online for safe ways to run this without using sudo or pkexec, but I could not find a safe way to do so.

Has anyone else found a workaround for this problem? I am running Fedora 37 if that helps.
image

Model I

Are there plans on a version for the model I (with an option for regulating the debounce time)

Debounce time change not saving

Whenever I try to change the debounce time to something like 0ms or 2ms it just doesn't change. The CPS caps at 10cps, and by downloading Glorious Core on another computer I saw that the debounce time was still set to 10ms.

Support for Model O2 Wireless

Hey there! Tool looks amazing, I was wondering what needs to be done to add support for the Model O2 Wireless. If theres any info I need to collect let me know!

I grabbed these from dmesg.. not sure if they are identical but did one plugged in, and one unplugged
Wireless

[    1.292958] usb 7-1: New USB device found, idVendor=093a, idProduct=822d, bcdDevice= 2.43
[    1.292960] usb 7-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    1.292961] usb 7-1: Product: Model O 2 Wireless
[    1.292962] usb 7-1: Manufacturer: Glorious
[    1.892049] input: Glorious Model O 2 Wireless as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.0/0003:093A:822D.0001/input/input2
[    1.943368] hid-generic 0003:093A:822D.0001: input,hidraw0: USB HID v1.10 Keyboard [Glorious Model O 2 Wireless] on usb-0000:31:00.3-1/input0
[    1.947116] input: Glorious Model O 2 Wireless Mouse as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822D.0002/input/input3
[    1.947169] input: Glorious Model O 2 Wireless Consumer Control as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822D.0002/input/input4
[    1.969283] usb 3-4: new full-speed USB device number 5 using xhci_hcd
[    1.998331] input: Glorious Model O 2 Wireless System Control as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822D.0002/input/input5
[    1.998376] hid-generic 0003:093A:822D.0002: input,hiddev96,hidraw1: USB HID v1.10 Mouse [Glorious Model O 2 Wireless] on usb-0000:31:00.3-1/input1
[ 2071.978315] usb 7-1: USB disconnect, device number 2
[ 2074.379093] usb 7-1: new full-speed USB device number 4 using xhci_hcd
[ 2074.517633] usb 7-1: New USB device found, idVendor=093a, idProduct=822a, bcdDevice= 2.43
[ 2074.517638] usb 7-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 2074.517639] usb 7-1: Product: Model O 2 Wireless
[ 2074.517641] usb 7-1: Manufacturer: GLORIOUS
[ 2074.529813] input: GLORIOUS Model O 2 Wireless as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.0/0003:093A:822A.0009/input/input23
[ 2074.582506] hid-generic 0003:093A:822A.0009: input,hidraw0: USB HID v1.10 Keyboard [GLORIOUS Model O 2 Wireless] on usb-0000:31:00.3-1/input0
[ 2074.586784] input: GLORIOUS Model O 2 Wireless Mouse as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822A.000A/input/input24
[ 2074.592124] input: GLORIOUS Model O 2 Wireless Consumer Control as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822A.000A/input/input25
[ 2074.645225] input: GLORIOUS Model O 2 Wireless System Control as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822A.000A/input/input26
[ 2074.646263] hid-generic 0003:093A:822A.000A: input,hiddev96,hidraw1: USB HID v1.10 Mouse [GLORIOUS Model O 2 Wireless] on usb-0000:31:00.3-1/input1
[ 4672.732431] usb 7-1: USB disconnect, device number 4
[ 4676.282144] usb 7-1: new full-speed USB device number 5 using xhci_hcd
[ 4676.457396] usb 7-1: New USB device found, idVendor=093a, idProduct=822d, bcdDevice= 2.43
[ 4676.457400] usb 7-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 4676.457401] usb 7-1: Product: Model O 2 Wireless
[ 4676.457403] usb 7-1: Manufacturer: Glorious
[ 4676.469445] input: Glorious Model O 2 Wireless as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.0/0003:093A:822D.000B/input/input28
[ 4676.522474] hid-generic 0003:093A:822D.000B: input,hidraw0: USB HID v1.10 Keyboard [Glorious Model O 2 Wireless] on usb-0000:31:00.3-1/input0
[ 4676.526477] input: Glorious Model O 2 Wireless Mouse as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822D.000C/input/input29
[ 4676.526533] input: Glorious Model O 2 Wireless Consumer Control as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822D.000C/input/input30
[ 4676.579193] input: Glorious Model O 2 Wireless System Control as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822D.000C/input/input31
[ 4676.579328] hid-generic 0003:093A:822D.000C: input,hiddev96,hidraw1: USB HID v1.10 Mouse [Glorious Model O 2 Wireless] on usb-0000:31:00.3-1/input1

Wired


[    1.149615] usb 7-1: new full-speed USB device number 2 using xhci_hcd
[    1.292958] usb 7-1: New USB device found, idVendor=093a, idProduct=822d, bcdDevice= 2.43
[    1.292960] usb 7-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    1.292961] usb 7-1: Product: Model O 2 Wireless
[    1.292962] usb 7-1: Manufacturer: Glorious
[    1.892049] input: Glorious Model O 2 Wireless as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.0/0003:093A:822D.0001/input/input2
[    1.943368] hid-generic 0003:093A:822D.0001: input,hidraw0: USB HID v1.10 Keyboard [Glorious Model O 2 Wireless] on usb-0000:31:00.3-1/input0
[    1.947116] input: Glorious Model O 2 Wireless Mouse as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822D.0002/input/input3
[    1.947169] input: Glorious Model O 2 Wireless Consumer Control as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822D.0002/input/input4
[    1.969283] usb 3-4: new full-speed USB device number 5 using xhci_hcd
[    1.998331] input: Glorious Model O 2 Wireless System Control as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822D.0002/input/input5
[    1.998376] hid-generic 0003:093A:822D.0002: input,hiddev96,hidraw1: USB HID v1.10 Mouse [Glorious Model O 2 Wireless] on usb-0000:31:00.3-1/input1
[ 2071.978315] usb 7-1: USB disconnect, device number 2
[ 2074.379093] usb 7-1: new full-speed USB device number 4 using xhci_hcd
[ 2074.517633] usb 7-1: New USB device found, idVendor=093a, idProduct=822a, bcdDevice= 2.43
[ 2074.517638] usb 7-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 2074.517639] usb 7-1: Product: Model O 2 Wireless
[ 2074.517641] usb 7-1: Manufacturer: GLORIOUS
[ 2074.529813] input: GLORIOUS Model O 2 Wireless as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.0/0003:093A:822A.0009/input/input23
[ 2074.582506] hid-generic 0003:093A:822A.0009: input,hidraw0: USB HID v1.10 Keyboard [GLORIOUS Model O 2 Wireless] on usb-0000:31:00.3-1/input0
[ 2074.586784] input: GLORIOUS Model O 2 Wireless Mouse as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822A.000A/input/input24
[ 2074.592124] input: GLORIOUS Model O 2 Wireless Consumer Control as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822A.000A/input/input25
[ 2074.645225] input: GLORIOUS Model O 2 Wireless System Control as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822A.000A/input/input26
[ 2074.646263] hid-generic 0003:093A:822A.000A: input,hiddev96,hidraw1: USB HID v1.10 Mouse [GLORIOUS Model O 2 Wireless] on usb-0000:31:00.3-1/input1
[ 4672.732431] usb 7-1: USB disconnect, device number 4
[ 4676.282144] usb 7-1: new full-speed USB device number 5 using xhci_hcd
[ 4676.457396] usb 7-1: New USB device found, idVendor=093a, idProduct=822d, bcdDevice= 2.43
[ 4676.457400] usb 7-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 4676.457401] usb 7-1: Product: Model O 2 Wireless
[ 4676.457403] usb 7-1: Manufacturer: Glorious
[ 4676.469445] input: Glorious Model O 2 Wireless as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.0/0003:093A:822D.000B/input/input28
[ 4676.522474] hid-generic 0003:093A:822D.000B: input,hidraw0: USB HID v1.10 Keyboard [Glorious Model O 2 Wireless] on usb-0000:31:00.3-1/input0
[ 4676.526477] input: Glorious Model O 2 Wireless Mouse as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822D.000C/input/input29
[ 4676.526533] input: Glorious Model O 2 Wireless Consumer Control as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822D.000C/input/input30
[ 4676.579193] input: Glorious Model O 2 Wireless System Control as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822D.000C/input/input31
[ 4676.579328] hid-generic 0003:093A:822D.000C: input,hiddev96,hidraw1: USB HID v1.10 Mouse [Glorious Model O 2 Wireless] on usb-0000:31:00.3-1/input1
[ 5842.653635] usb 7-1: USB disconnect, device number 5
[ 5844.687575] usb 7-1: new full-speed USB device number 6 using xhci_hcd
[ 5844.829736] usb 7-1: New USB device found, idVendor=093a, idProduct=822a, bcdDevice= 2.43
[ 5844.829740] usb 7-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 5844.829741] usb 7-1: Product: Model O 2 Wireless
[ 5844.829742] usb 7-1: Manufacturer: GLORIOUS
[ 5844.841830] input: GLORIOUS Model O 2 Wireless as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.0/0003:093A:822A.000D/input/input33
[ 5844.893671] hid-generic 0003:093A:822A.000D: input,hidraw0: USB HID v1.10 Keyboard [GLORIOUS Model O 2 Wireless] on usb-0000:31:00.3-1/input0
[ 5844.898023] input: GLORIOUS Model O 2 Wireless Mouse as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822A.000E/input/input34
[ 5844.898097] input: GLORIOUS Model O 2 Wireless Consumer Control as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822A.000E/input/input35
[ 5844.949608] input: GLORIOUS Model O 2 Wireless System Control as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822A.000E/input/input36
[ 5844.949651] hid-generic 0003:093A:822A.000E: input,hiddev96,hidraw1: USB HID v1.10 Mouse [GLORIOUS Model O 2 Wireless] on usb-0000:31:00.3-1/input1

Wireless Model D-

I purchased a Wireless Model D-, before the purchase I asked Glorious if it had the same internals as the model O Wireless, and pointed them to your GitHub repo. They said it would likely work with your utility, but of course gave me a bunch of boilerplate about how they don't support it. I took the chance and bought one, however it obviously has a different USB ID than the MOW, and as such running mow just says it can't find a supported device:

./mow report battery
Error: No matching device found!

How do I go about adding the wired/wireless ID's to your code in order to try and get it recognized? I'm not a developer, and I have zero Rust experience, but I'd be willing to take a crack at it if it's just a matter of changing the ID in the code. It would be nice if there was a command line option to explicitly specify the ID, for testing with other models from the same vendor, or a config file where you can list the IDs you'd like it to recognize.

Below is the dmesg output when plugging this mouse in.

Wired:

[Sun May 22 12:52:49 2022] usb 3-1.2.4: Manufacturer: Glorious
[Sun May 22 12:52:49 2022] input: Glorious Model D- Wireless as /devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:00.0/0000:03:00.0/usb3/3-1/3-1.2/3-1.2.4/3-1.2.4:1.0/0003:258A:2014.001F/input/input50
[Sun May 22 12:52:49 2022] hid-generic 0003:258A:2014.001F: input,hidraw17: USB HID v1.11 Mouse [Glorious Model D- Wireless] on usb-0000:03:00.0-1.2.4/input0
[Sun May 22 12:52:49 2022] input: Glorious Model D- Wireless Consumer Control as /devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:00.0/0000:03:00.0/usb3/3-1/3-1.2/3-1.2.4/3-1.2.4:1.1/0003:258A:2014.0020/input/input51
[Sun May 22 12:52:49 2022] input: Glorious Model D- Wireless System Control as /devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:00.0/0000:03:00.0/usb3/3-1/3-1.2/3-1.2.4/3-1.2.4:1.1/0003:258A:2014.0020/input/input52
[Sun May 22 12:52:49 2022] input: Glorious Model D- Wireless Keyboard as /devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:00.0/0000:03:00.0/usb3/3-1/3-1.2/3-1.2.4/3-1.2.4:1.1/0003:258A:2014.0020/input/input53
[Sun May 22 12:52:49 2022] input: Glorious Model D- Wireless as /devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:00.0/0000:03:00.0/usb3/3-1/3-1.2/3-1.2.4/3-1.2.4:1.1/0003:258A:2014.0020/input/input54
[Sun May 22 12:52:49 2022] input: Glorious Model D- Wireless as /devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:00.0/0000:03:00.0/usb3/3-1/3-1.2/3-1.2.4/3-1.2.4:1.1/0003:258A:2014.0020/input/input55
[Sun May 22 12:52:49 2022] hid-generic 0003:258A:2014.0020: input,hiddev96,hidraw18: USB HID v1.11 Keyboard [Glorious Model D- Wireless] on usb-0000:03:00.0-1.2.4/input1
[Sun May 22 12:52:49 2022] hid-generic 0003:258A:2014.0021: hiddev104,hidraw19: USB HID v1.11 Device [Glorious Model D- Wireless] on usb-0000:03:00.0-1.2.4/input2

Wireless:

[Sun May 22 12:53:01 2022] usb 3-1.2.4: Manufacturer: Glorious
[Sun May 22 12:53:01 2022] input: Glorious Model D- Wireless as /devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:00.0/0000:03:00.0/usb3/3-1/3-1.2/3-1.2.4/3-1.2.4:1.0/0003:258A:2025.0022/input/input56
[Sun May 22 12:53:01 2022] hid-generic 0003:258A:2025.0022: input,hidraw17: USB HID v1.11 Mouse [Glorious Model D- Wireless] on usb-0000:03:00.0-1.2.4/input0
[Sun May 22 12:53:01 2022] input: Glorious Model D- Wireless Consumer Control as /devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:00.0/0000:03:00.0/usb3/3-1/3-1.2/3-1.2.4/3-1.2.4:1.1/0003:258A:2025.0023/input/input57
[Sun May 22 12:53:02 2022] input: Glorious Model D- Wireless System Control as /devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:00.0/0000:03:00.0/usb3/3-1/3-1.2/3-1.2.4/3-1.2.4:1.1/0003:258A:2025.0023/input/input58
[Sun May 22 12:53:02 2022] input: Glorious Model D- Wireless Keyboard as /devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:00.0/0000:03:00.0/usb3/3-1/3-1.2/3-1.2.4/3-1.2.4:1.1/0003:258A:2025.0023/input/input59
[Sun May 22 12:53:02 2022] input: Glorious Model D- Wireless as /devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:00.0/0000:03:00.0/usb3/3-1/3-1.2/3-1.2.4/3-1.2.4:1.1/0003:258A:2025.0023/input/input60
[Sun May 22 12:53:02 2022] input: Glorious Model D- Wireless as /devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:00.0/0000:03:00.0/usb3/3-1/3-1.2/3-1.2.4/3-1.2.4:1.1/0003:258A:2025.0023/input/input61
[Sun May 22 12:53:02 2022] hid-generic 0003:258A:2025.0023: input,hiddev96,hidraw18: USB HID v1.11 Keyboard [Glorious Model D- Wireless] on usb-0000:03:00.0-1.2.4/input1
[Sun May 22 12:53:02 2022] hid-generic 0003:258A:2025.0024: hiddev104,hidraw19: USB HID v1.11 Device [Glorious Model D- Wireless] on usb-0000:03:00.0-1.2.4/input2

An Open-Source License?

Hello, thank you for this project!
With the current state of the repository, the code is only for personal use, as it doesn't have a license.

However, without a license, the default copyright laws apply,
meaning that you retain all rights to your source code and
no one may reproduce, distribute, or create derivative works
from your work.

https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository#choosing-the-right-license

It would be great if you could add an open-source LICENSE to this project, meaning we all could use and improve this code!

[Feature Request] Report only shows battery and firmware, not saved settings

While I haven't used the Glorious program to view settings on a Windows machine, I assume the program shows you what the current settings of the mouse are so you can alter them. Such as what color settings you have, which DPI settings you are on, what your DPI stages are set to, and even your polling rate.

While it's understandable that you can just set them to what you want, overwriting the setting even if it is the same, it would be nice to see what your configurations are in case you forget which specific setting (especially color codes) you liked so you can use them again in the next configuration you set.

Arch AUR release doesn't compile

The build from the AUR download doesn't seem to be working. Pulling master and building worked, however.

Aur (1)      Old Version  New Version    Make Only
aur/mow-git               v0.2-1         No
warning: `mow` (bin "mow") generated 1 warning
error: could not compile `mow` (bin "mow") due to 1 previous error; 1 warning emitted

Caused by:
  process didn't exit successfully: `CARGO=/usr/bin/cargo CARGO_BIN_NAME=mow CARGO_CRATE_NAME=mow CARGO_MANIFEST_DIR=/home/tom/.cache/paru/clone/mow-git/src/mow CARGO_PKG_AUTHORS='Ola Næss Kaldestad <[email protected]>' CARGO_PKG_DESCRIPTION='
  Cross platform CLI tool for Glorious'\'' Model O Wireless.

  Reverse engineered using USB packet logs sniffed with
  WireShark and USBPcap, as well as decompiled Windows
  software (Glorious Core).
  ' CARGO_PKG_HOMEPAGE='' CARGO_PKG_LICENSE='' CARGO_PKG_LICENSE_FILE='' CARGO_PKG_NAME=mow CARGO_PKG_README=README.md CARGO_PKG_REPOSITORY='' CARGO_PKG_RUST_VERSION='' CARGO_PKG_VERSION=0.1.0 CARGO_PKG_VERSION_MAJOR=0 CARGO_PKG_VERSION_MINOR=1 CARGO_PKG_VERSION_PATCH=0 CARGO_PKG_VERSION_PRE='' CARGO_PRIMARY_PACKAGE=1 LD_LIBRARY_PATH=/home/tom/.cache/paru/clone/mow-git/src/mow/target/release/deps rustc --crate-name mow --edition=2021 src/main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=284 --crate-type bin --emit=dep-info,link -C opt-level=3 -C embed-bitcode=no -C metadata=15a6d4cd601eb97b -C extra-filename=-15a6d4cd601eb97b --out-dir /home/tom/.cache/paru/clone/mow-git/src/mow/target/release/deps -C strip=debuginfo -L dependency=/home/tom/.cache/paru/clone/mow-git/src/mow/target/release/deps --extern clap=/home/tom/.cache/paru/clone/mow-git/src/mow/target/release/deps/libclap-bb8f16985b3d1b8e.rlib --extern colored=/home/tom/.cache/paru/clone/mow-git/src/mow/target/release/deps/libcolored-1de7d4821b01c141.rlib --extern hidapi=/home/tom/.cache/paru/clone/mow-git/src/mow/target/release/deps/libhidapi-aef288118d94905b.rlib -Cforce-frame-pointers=yes -C debuginfo=2 --remap-path-prefix=/home/tom/.cache/paru/clone/mow-git/src=/usr/src/debug/mow-git -L native=/usr/lib -L native=/home/tom/.cache/paru/clone/mow-git/src/mow/target/release/build/hidapi-88d0b4f4bdcebaab/out` (exit status: 1)
==> ERROR: A failure occurred in build().
    Aborting...
error: failed to build 'mow-git-v0.2-1': 
error: packages failed to build: mow-git-v0.2-1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.