GithubHelp home page GithubHelp logo

modrinth / theseus Goto Github PK

View Code? Open in Web Editor NEW
747.0 10.0 116.0 17.41 MB

AKA the Modrinth App, a launcher for Minecraft: Java Edition with a clean look, easy-to-use interface, and deep integration into Modrinth services.

Home Page: https://modrinth.app

License: GNU General Public License v3.0

Rust 54.50% JavaScript 5.10% HTML 0.05% Vue 40.05% SCSS 0.24% CSS 0.01% Java 0.06%
hacktoberfest minecraft minecraft-launcher modrinth modrinth-api

theseus's Introduction

modrinth app: theseus (desktop app)

Modrinth App

Screenshot of the Modrinth App's home page

The Modrinth App, codenamed theseus, is a modern launcher for Minecraft: Java Edition with a clean look, easy-to-use interface, and deep integration into Modrinth services.

Features

  • One-click installation of modpacks
  • Automatic management of Java versions
  • Windows, Mac, and Linux1 support
  • Import your instances from CurseForge, Prism2, ATLauncher, MultiMC2, or GDLauncher
  • Supports offline play once you've authenticated with your Minecraft account at least once
  • Fully open source under GPLv33!

Contributing

You're welcome to help contribute to the Modrinth App if you'd like! Please review our contribution guide before attempting to contribute or make a pull request though.

Development

To get started, install pnpm, Rust, and the Tauri prerequisites for your system. Then, run the following commands:

cd theseus_gui
pnpm install
pnpm run tauri dev

Once the commands finish, you'll be viewing a Tauri window with Nuxt.js hot reloading.

You can use pnpm run lint to find any eslint problems, and pnpm run fix to try automatically fixing those problems.

License

The source code of the theseus repository is licensed under the GNU General Public License, Version 3 only, which is provided in the file LICENSE. However, some files are licensed under a different license.

Any files depicting the Modrinth branding, including the wrench-in-labyrinth logo, the landing image, and variations thereof, are licensed as follows:

All rights reserved. © 2020-2024 Rinth, Inc.

Forking is permitted under the GPLv3, however do be aware that you must remove all Modrinth branding, including logos, brand colors, background images, or anything else that is related to trademarks or copyrights held by Rinth, Inc.

Footnotes

  1. While Linux is supported, due to the wide range of distributions out there, your mileage may vary with how well the Modrinth App works on your system. We officially distribute .deb and .AppImage packages, but third party packages have been created for a number of other package platforms. Additionally, some have reported lag issues running on Linux, we believe this to be due to an upstream Tauri issue, which we hope improves with further development.

  2. Certain features of the OneSix format used by Prism and MultiMC are not yet supported, so some instances may not import correctly, primarily on older Minecraft versions or unsupported mod loaders. 2

  3. Modrinth's logos, branding, and other trademarks are not free for use, see the licensing section for more information.

theseus's People

Contributors

brawaru avatar codexadrian avatar coreyshupe avatar darling avatar enderger avatar fxdsu avatar geometrically avatar geoxor avatar ilgrandeanonimo avatar justsnoopy30 avatar knifesmithcode avatar mattreid99 avatar maxomatic458 avatar melanx avatar miraculixxt avatar modrinth-bot avatar mrliam2614 avatar norbiros avatar obj-obj avatar octelly avatar omegajak avatar prospector avatar qtchaos avatar rayn322 avatar thesuzerain avatar tobinio avatar triphora avatar venashial avatar wuzado avatar zachbaird 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

theseus's Issues

Launcher GUI: Adding Instances

Adding instances should be a pretty simple process, allowing the user to select the mod loader, the game version, a name, and optionally a description and icon.

Versions in "Filter Versions" dropdown do not show versions in chronological order

Describe the bug

The versions in the "Filter Versions" dropdown don't show versions in chronological order.

Steps to reproduce

  1. Go to "Browse"
  2. View anything on Modrinth with lots of versions (ex. Rethinking Voxels)
  3. Go to "Versions"
  4. Click on the Filter Versions dropdown.
  5. Observe that versions are not in chronological order.

Expected behavior

Versions are shown in chronological order, perhaps with snapshots at the bottom.

Additional context

No response

Theseus: Profile Mod Management

This is a little complicated, so I made a separate issue so it could be explained more.

Profiles have mods, and they can be added in three ways: Through modrinth search, URLs (GitHub, CurseForge, and Modrinth ones should work), and the file system (drag and drop or direct).

The launcher needs to know all of the mods in a profile, so it can be stored in JSON, synced, and metadata which can be scanned from JARs can be displayed in the UI,

For modrinth mods, we know the name, version, icon, and URL of a mod. All others need to be scanned from a JAR. Mods need to also be able to be removed from the UI too.

Ideally, a mod would be an enum of two types: Jar and Modrinth and serialize two those two respectively. All mod objects should state the path/filename and hash of the file.

Here's a checklist of everything that needs to be working as a summary:

  • Adding mods from Modrinth version IDs, and URLs (GH, CF, and MR)
  • Removing mods
  • Constantly syncing and regenerating JSON for project updates so they can be displayed in the UI
  • Integrated with profile system in #8

(theseus_gui) External links open in the application window

Describe the bug

Clicking an external link, like one on a project's Modrinth project page, replaces the entire application with the contents of the link.

Steps to reproduce

  1. Under Home, click on the Fabulously Optimized pack, or search for it
  2. Click on an external link, like the "how to install" button that's part of this project's description
  3. The page replaces the entire Modrinth App interface.
    image

Expected behavior

The link should open in my browser.

Additional context

This could be used to phish Microsoft account credentials, by linking to a launcher lookalike page.

Microsoft Account Authentication in system browser

Is your suggested enhancement related to a problem? Please describe.

It would be nice if logging in with your MS account would happen through the system's browser if available.

Describe the solution you'd like

Similar to the behavior of the mod AuthMe.

When attempting to login with a Microsoft account, your browser opens and you enter your Microsoft credentials.

Describe alternatives you've considered

No response

Additional context

No response

Skip builds on pull requests

Most users will not (and should not) use untrusted build artifacts, and most code reviewers will build the app on their own system or only inspect the code changes.

The current configuration of the Tauri updater module returns errors due to missing certificate/private keys/secrets for pull requests from external repository forks, which increases visual noise in the issues.

The sum of compilation times can reach almost an hour (partially due to tauri-apps/tauri#7073), which is not optimal if Rinth pays for CI.

Thus, running cargo check in place of cargo build or tauri build may be preferable for developer and maintainer experience.

Does not launch on Linux

Describe the bug

Does not launch

Steps to reproduce

launch the appimage

Expected behavior

No response

Additional context

thread 'main' panicked at 'called Result::unwrap() on an Err value: UnsupportedPlatform', theseus_gui/src-tauri/src/main.rs:91:28
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

Show file names somehow in instance page

Is your suggested enhancement related to a problem? Please describe.

There's no way to see what file is associated with a certain mod.

Describe the solution you'd like

No response

Describe alternatives you've considered

No response

Additional context

No response

Launcher CLI: Settings Management

The launcher CLI should have an easy way to manage settings. I think we should make this elegant. Whereas a lot of CLIs have cumbersome settings, we can make it easy with prompts and good autocomplete.

Could be a command like theseus settings or several subcommands, up to implementation/what works best.

Fails to build

~/Code/theseus/ cargo run
   Compiling theseus_gui v0.1.0 (/home/slinkous/Code/theseus/theseus_gui/src-tauri)
error: proc macro panicked
  --> theseus_gui/src-tauri/src/main.rs:12:13
   |
12 |   let ctx = tauri::generate_context!();
   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = help: message: The `distDir` configuration is set to `"../build"` but this path doesn't exist

error: could not compile `theseus_gui` due to previous error
~/Code/theseus/ 

OS: Arch Linux
CPU: Ryzen 7 5700G
Terminal: Kitty
Shell: Bash

Not sure if this is a known issue but figured I'd post it here anyway.

Options wrap weirdly on instance page

Describe the bug

Options look weird when they wrap on instance menu. Ideally, if everything can't fit on one line, the options will move to the line below the chips and be left-aligned, but if there's room they fit snugly right-aligned next to the chips. Might be complicated to impl

image

Steps to reproduce

No response

Expected behavior

No response

Additional context

No response

Launcher CLI: Instance Mod Management

Users should be able to add mods to instances and specific versions. It should also prompt and install any needed dependencies specified by these mods.

Users should also have the ability to update their instance to a new game version with a subcommand and update all the mods accordingly

Theseus is missing `license` fields in all of its workspaces, and has several license incompatibilities.

Describe the bug
A license field is not included in any of the Cargo.toml files in theseus, leading to false positives+negatives with tools like cargo-lichking. When corrected, cargo lichking shows multiple license incompatibilities

To Reproduce
Steps to reproduce the behavior:

  1. Clone theseus
  2. Run cargo lichking check --all
  3. cargo lichking throws false positives+negatives
    Before adding license = "MIT" to each of the Cargo.tomls:
% cargo lichking --frozen check --all                    
 ERROR cargo_lichking::check > theseus cannot include package openssl, license Apache-2.0 is incompatible with No license specified
 ERROR cargo_lichking::check > theseus_cli cannot include package theseus, license No license specified is incompatible with No license specified
 ERROR cargo_lichking::check > theseus_cli cannot include package openssl, license Apache-2.0 is incompatible with No license specified
 ERROR cargo_lichking::check > theseus_gui cannot include package selectors, license MPL-2.0 is incompatible with No license specified
 ERROR cargo_lichking::check > theseus_gui cannot include package thin-slice, license MPL-2.0 is incompatible with No license specified
 ERROR cargo_lichking::check > theseus_gui cannot include package cssparser, license MPL-2.0 is incompatible with No license specified
 ERROR cargo_lichking::check > theseus_gui cannot include package dtoa-short, license MPL-2.0 is incompatible with No license specified
 ERROR cargo_lichking::check > theseus_gui cannot include package cssparser-macros, license MPL-2.0 is incompatible with No license specified
 ERROR cargo_lichking::check > theseus_gui cannot include package tao, license Apache-2.0 is incompatible with No license specified
 ERROR cargo_lichking::check > theseus_gui cannot include package blake3, license CC0-1.0 / Apache-2.0 is incompatible with No license specified
 ERROR cargo_lichking::check > theseus_gui cannot include package constant_time_eq, license CC0-1.0 is incompatible with No license specified
 ERROR cargo_lichking::check > theseus_gui cannot include package attohttpc, license MPL-2.0 is incompatible with No license specified
 ERROR cargo_lichking::check > theseus_gui cannot include package openssl, license Apache-2.0 is incompatible with No license specified
 ERROR cargo_lichking        > Incompatible license

After adding license = "MIT" to each of the Cargo.tomls:

% cargo lichking --frozen check --all
 ERROR cargo_lichking::check > theseus cannot include package sha1, license BSD-3-Clause is incompatible with MIT
 ERROR cargo_lichking::check > theseus cannot include package openssl, license Apache-2.0 is incompatible with MIT
 ERROR cargo_lichking::check > theseus_cli cannot include package sha1, license BSD-3-Clause is incompatible with MIT
 ERROR cargo_lichking::check > theseus_cli cannot include package openssl, license Apache-2.0 is incompatible with MIT
 ERROR cargo_lichking::check > theseus_gui cannot include package selectors, license MPL-2.0 is incompatible with MIT
 ERROR cargo_lichking::check > theseus_gui cannot include package thin-slice, license MPL-2.0 is incompatible with MIT
 ERROR cargo_lichking::check > theseus_gui cannot include package cssparser, license MPL-2.0 is incompatible with MIT
 ERROR cargo_lichking::check > theseus_gui cannot include package dtoa-short, license MPL-2.0 is incompatible with MIT
 ERROR cargo_lichking::check > theseus_gui cannot include package cssparser-macros, license MPL-2.0 is incompatible with MIT
 ERROR cargo_lichking::check > theseus_gui cannot include package instant, license BSD-3-Clause is incompatible with MIT
 ERROR cargo_lichking::check > theseus_gui cannot include package tao, license Apache-2.0 is incompatible with MIT
 ERROR cargo_lichking::check > theseus_gui cannot include package subtle, license BSD-3-Clause is incompatible with MIT
 ERROR cargo_lichking::check > theseus_gui cannot include package arrayref, license BSD-2-Clause is incompatible with MIT
 ERROR cargo_lichking::check > theseus_gui cannot include package sha1, license BSD-3-Clause is incompatible with MIT
 ERROR cargo_lichking::check > theseus_gui cannot include package attohttpc, license MPL-2.0 is incompatible with MIT
 ERROR cargo_lichking::check > theseus_gui cannot include package openssl, license Apache-2.0 is incompatible with MIT
 ERROR cargo_lichking        > Incompatible license

Expected behavior
cargo lichking check --all returns 0

Launcher CLI: Search

The search can either be real time (through some cool CLI stuff) or just through arguments. The search command should have support for category filtering, loader filtering, game version filtering, index selection, and offsets/pagination.

Window size + location not preserved

Describe the bug

When resizing/moving the app and relaunching, it resets it's window size and location

Steps to reproduce

  1. Resize app and/or move it
  2. Close app
  3. Launch app and it won't be in the same location/size

Expected behavior

Same size/location as previous launches

Additional context

No response

Ability to trasnfer instances from other launchers (MultiMC, Prism, Official Laucher, etc.)

Is your suggested enhancement related to a problem? Please describe.

I currently use the prism launcher and transferring over all of my minecraft instances would be tedious.

Describe the solution you'd like

It would be nice if when you first install the launcher it prompts you if you would like to transfer your instances from a seperate launcher.

Describe alternatives you've considered

Manually moving over ther save data which, once again is very tedious.

Additional context

No response

Launcher GUI: Project Pages

These pages don't have to be fully featured like the website page.

Ideally, all they should have is the general info (icon, title, summary, downloads, follows, created, updated, team members, donation links, issues, discord, gallery, and the description).

There are no featured versions. The versions page should simply be a list like what is currently on the rewrite.

Instead of download buttons, there will be two types: Add to Instance and Play. This will also be on the main page. The buttons on the main page will Add a compatible version to the instance, and play will create a new instance with the latest version.

Since there are no user pages, team members aren't links, and are just displayed.

Close button should be clickable from top right corner of window

Is your suggested enhancement related to a problem? Please describe.

On windows and linux, close button should be clickable from the top right corner of the window. may be possible to do with pseudoelement, if not might just need a container div. It should show hover state as if you were hovering over it even though you're not.

image

Describe the solution you'd like

No response

Describe alternatives you've considered

No response

Additional context

No response

Launcher GUI: Instance Page

The instance page should have multiple tabs as follows:

  • Mods
  • Console
  • Settings (game version + loader can be changed here too)

These are pretty self explanatory and should be integrated with #8. The Mods page should have an icon, name, and short form description, with a trash button to remove a mod, and some sort of marker if it's a modrinth mod.

On top of that, it should support drag and drop to add mod JARs, a button for adding mods from URLs, and a button for a inner search page to add Modrinth mods (with the filters of the loader and game version the instance is).

The inner search page should just have a button on each search entry to add the mod to the instance.

The UI is useless and unresponsive during downloading

Describe the bug

The GUI is useless and unresponsive during downloading.

Steps to reproduce

  1. Open the 'Modrinth App'
  2. On the Sidebar click 'Browse'
  3. Click on a Modpack (for example Fabulously Optimized)
  4. Click 'Install'
  5. You will see that the UI is unresponsive during the download

Expected behavior

The download should be in the background and the UI should be usable while it's downloading.

Additional context

Tested on Garuda Linux (Arch Linux based) using an AUR-Package which compiles and builds a package from this. Git Commit: e0e9c3f

Browse Tab Infinite Load

Describe the bug

When in the browse tab all categories load infinitely after switching to any category other than modpacks. Switching back to modpacks also loads infinitely.

Steps to reproduce

  1. Open the browse tab on the left side of the app.
  2. Select any category other than the default 'Modpacks'.

Expected behavior

Other categories are expected to load the requested content.

Additional context

I am running Windows 10 Pro 22H2
image

Very minor visual dropdown menu bug

Describe the bug

When selecting an option from this dropdown, the options turn into rectangles for a split second (and when initially clicking on dropdown)

Steps to reproduce

  1. Go to an instance's page
  2. Click on the dropdown
  3. Select an option
  4. See the rectangles for a split second

Expected behavior

No rectangles, a maintained shape

Additional context

ezgif.com-video-cutter.mp4

Can't read columns if they're cut off on instance page

Describe the bug

Could add a tooltip to show it even if it doesn't fit. Alternatively, maybe just display the author name under the mod title? Version having its own column I get, but author seems unnecessary.

image

Steps to reproduce

No response

Expected behavior

No response

Additional context

No response

Launcher: add support for versioned modloaders

Currently, the launcher module does not provide support for specifying the version of modloaders such as Fabric and Forge when launching Minecraft. Since the modpack manifest format specifies this information, Theseus should support this. The modpack (#2) module uses if let to make integration with this change fairly painless, it just needs to be implemented as the project sees fit.

Launcher CLI: Server Install

Servers may use the theseus CLI in some cases. For example, a common one would be installing a modpack on a server.

This subcommand should take a project ID/slug or version ID and install the appropriate server files and create a working instance a user can easily start.

There may need to be some library changes to do this, as server installs currently are not supported.

Clicking on external urls opens the url in the theseus app.

Describe the bug

When clicking on an external url on for example a mod's page, you will be redirected to that page in the window of theseus itself.

Steps to reproduce

  1. Go to any mod page that contains an external url for example fabric-language-kotlin
  2. Click on an external url, for example the link to github on the fabric-language-kotlin page
  3. The external page will be opened in the window of theseus

Expected behavior

The external url should be opened by a browser and not in the window of theseus.

Additional context

No response

No running instances -> No instances running

Is your suggested enhancement related to a problem? Please describe.

Reversing the order feels a bit more natural

Describe the solution you'd like

No response

Describe alternatives you've considered

No response

Additional context

No response

Theseus: Profile Management

Profiles are a complex and intricate system. This issue is split up into multiple sub tasks.

  • Base "global state" for profiles. Essentially, when the application starts, all of the profiles should be loaded into memory
  • Profile Settings, Java Install, Memory, Custom Java Args, Game Window Resolution settings, Custom Commands (see MMC)
  • Profile Metadata: Instance location, mod loader version, MC version
  • Profile icons (part of metadata), but should be able to be preselected from a directory included with the launcher, or set to a custom icon. If set to a custom icon, copy it to the profile directory
  • Way to query a profile + save changes from the frontend
  • Methods for profiles to be launched and stopped
  • Way for game version and loader version to be changed
  • Way for profiles to be listed for frontend display

For the global state - take a look at how the setttings singletons are implemented in theseus. The way profile management should be very similar to how the settings singleton is structured.

App bar blends too much

Is your suggested enhancement related to a problem? Please describe.

It's hard to distinguish between the app bar and the content on the page sometimes

Describe the solution you'd like

Maybe a larger shadow on the bar? Or a slightly dark shade of gray, not sure

Describe alternatives you've considered

Ignoring it

Additional context

image

Possibly add options to choose upstream 3.2.2 lwjgl

Ok so, I was thinking the launcher could have some sort of option to choose custom lwjgl’s similar to how multimc does with older lwjgl, but specifically there is many bugs with the 3.2.2 version that Minecraft uses internal especially for Linux users ( https://bugs.mojang.com/browse/MC-122421 ) and I was thinking it could be cool to offer custom builds of 3.2.2 lwjgl with the patch packages as some bugs make the game decently unplayable such as the one I mentioned above.

Somewhat edit, I was originally kind of confused originally when I made this, to clear it up. People make 3rd party patches to 3.2.2/whichever version Minecraft uses and it will bring simple modern bug fixes back to older versions of it, specifically the Linux keybind issue is a common one.

Snapping for the Memory Sliders for the "logical" steps

Is your suggested enhancement related to a problem? Please describe.

My suggestion is about the Memory settings. To add steps like 0.5G, 1G, 2G, 4G, 8G, 16G, 32G steps to set the memory easy to a normal precise value this is relay hard for me with the slider for example since i got a lot of memory to get the 2048 for example:
grafik

Describe the solution you'd like

Mark in points witch you can click an it snaps the predefined value like 2G = 2048
grafik

Describe alternatives you've considered

you already have the alternative in place with the text input

Additional context

I added a POC to the a fork of the omorphia sadly i'm not skilled enough to change the styling so the marks appear.
Like in the normal html5 design:
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/range#adding_labels
alwism/omorphia@027d040

PathBuf#set_extension messes up version names

Minecraft version names contain dots, but Rust's PathBuf interprets it as an extension which is being changed in theseus/src/launcher/download.rs on line 26 to json. This messes up version names in files as shown in this image:
image
However when starting the game, the version jar file is added to the classpath as 1.18.2-0.13.3.jar, causing an error on Fabric and a crash on vanilla.
image

One not too elegant but working solution would be to just use PathBuf#push to append the .json and the .jar extension to the filename.

Mod Updater - mods without a provider

Is your suggested enhancement related to a problem? Please describe.

I frequently use the check for updates button, and every time I need to tell it to ignore mods that aren't from modrinth or curseforge.

Describe the solution you'd like

Let me mark the mod to always be ignored.

Describe alternatives you've considered

You could also remember that I pressed ignore on that mod, and not ask again.

Additional context

No response

Launcher CLI: Project Information Query

This should take a slug/project ID and display information about a project (title, description, categories, downloads, followers, etc)

This could show the icon in an ASCII format? Not sure if there's a good library for it. I know some terminals just support images outright.

This should also have some subcommands:

  • Version listing
  • Changelog view

Title case in a few places

Describe the bug

  • Chips in java onboarding menu
    image
  • Select Updatable on instance menu
    image
  • Clear Filters in Browse tab
    image
  • Modrinth Website on version pages
    image

Steps to reproduce

No response

Expected behavior

No response

Additional context

No response

Launcher GUI: Homepage

The launcher's homepage should have the user's instances, (possibly in ordered of last played), maybe some news/blog posts displayed, and the Minecraft username (something like "Welcome Geometrically!"

Skip java step on onboarding if it's successfully detected

Is your suggested enhancement related to a problem? Please describe.

This step is kinda unnecessary if you already have java installed and it's detected. Maybe it shouldn't skip it but instead show the current java it's using and have an option to install a new one or change it to a different installation?

image

Describe the solution you'd like

No response

Describe alternatives you've considered

No response

Additional context

No response

Supported Platforms

Which Platforms and architectures will be supported by the gui and the cli?

Add tooltip for check icon on instance page

Is your suggested enhancement related to a problem? Please describe.

image
Unclear what this is here for without a tooltip. Maybe button should be hidden entirely since it serves no purpose?

Describe the solution you'd like

No response

Describe alternatives you've considered

No response

Additional context

No response

Make running instance widget clickable

Is your suggested enhancement related to a problem? Please describe.

image
Click on the widget to bring you to the instance's page

Describe the solution you'd like

No response

Describe alternatives you've considered

No response

Additional context

No response

Launcher GUI: Search Page

This can be very similar to the Modrinth website search pages. It should have category filters, game version, and loader filters.

Navigation Back button

Is your suggested enhancement related to a problem? Please describe.

When browsing mods to install when you click on a mod this brings you to the mod's page. However when you want to continue browsing mods there is no back button, thus you have to return to the installations menu, click on the installation, click on browse again and scroll back to where you were.

Also using keyboard shortcuts like alt+left arrow does not work as you will be brought to the browsing page, but the app won't let you install mods for the installation you were working on

Describe the solution you'd like

A back button in navigation that brings you back to the previous state.

Describe alternatives you've considered

No response

Additional context

No response

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.