Giter VIP home page Giter VIP logo

valorant.py's Introduction

valorant.py

Actions PyPI Downloads LICENSE Discord

valorant.py is an unofficial API wrapper for Riot Games' Valorant API endpoints. It's modern, easy to use, feature-rich, and intuitive!

[**] Just a little note, the developement of this project will slow down a bit as I enter into college and other life stuff, but rest assured I don't plan on abandoning this. Thanks for understanding!

Features

  • Simple: High-level abstraction of API interactions; easy to use and easy to customize.

  • Lightweight: Doesn't rely on any external dependencies, minimal package size.

  • Extensive: Covers all Valorant related endpoints from the Riot Games API. Also includes Account coverage.

  • Fast: HTTP requests and object instancing optimized to use minimal resources and complete tasks quickly!

  • Intuitive: Complete auto-completion, docstrings, and type-hinting for all library objects and variables.

Installation

valorant.py requires Python 3.8 or higher.

Manager Command
PIP pip install valorant
Poetry poetry add valorant

Usage

Take a look at the examples/ folder for more usage snippets!

Quickstart:

import valorant

KEY = "RGAPI-Key-Here"
client = valorant.Client(KEY)

agents = client.get_characters()

print(agents.get("Viper"))

Local Client:

import valorant

client = valorant.LocalClient()

print(client.get_session())

NOTE: The Local Client interacts with the Client API that Valorant uses while the game is running on your system. This means access to current player, friend requests, shop, etc. The Local Client is currently unstable. valorant.py is not liable for any punishment you may recieve should you use its tools to break Valorant ToS. (i.e Auto-Agent Selection)

Documentation

The public API documentation for valorant.py is hosted on ReadTheDocs.io.

Use bash bin/docs to start the documentation server locally. This uses Ruby's WEBrick gem.

Help and Questions

Have a bug or issue? Need help with the API? Open an issue or hop in the #valorant-py channel of the Frisscraft Community Discord Server.

Contributing

Head over to the Contributing Guide page.

valorant.py's People

Contributors

frissyn 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

valorant.py's Issues

LeaderboardPlayerDTO.gameName is missing?

While looping through LeaderboardDTO.players, some players on the leaderboard raise an AttributeError when accessing gameName, puuid, or tagLine. The Riot Games API docs state that these fields may be missing if the player is anonymous. (i.e Streamer Mode).

get_platform_status() doesn't work

get_platform_status() doesn't work. I looked a bit into the code and I think you used region=self.reigon but I think you should have used code=self.region.
Although I'm not 100% sure.

No library named Valorant

whatever i try i cannot install the valorant library
`~/ValorantBot$ pip install valorant.py
ERROR: Could not find a version that satisfies the requirement valorant.py (from versions: none)
ERROR: No matching distribution found for valorant.py
WARNING: You are using pip version 19.3.1; however, version 21.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
~/ValorantBot$ pip install --upgrade pip
Collecting pip
Downloading https://files.pythonhosted.org/packages/fe/ef/60d7ba03b5c442309ef42e7d69959f73aacccd0d86008362a681c4698e83/pip-21.0.1-py3-none-any.whl (1.5MB)
|████████████████████████████████| 1.5MB 3.4MB/s
ERROR: dephell 0.8.3 has requirement pip<=19.3.1,>=18.0, but you'll have pip 21.0.1 which is incompatible.
Installing collected packages: pip
Found existing installation: pip 19.3.1
Uninstalling pip-19.3.1:
Successfully uninstalled pip-19.3.1
Successfully installed pip-21.0.1
~/ValorantBot$ pip install valorant.py
ERROR: Could not find a version that satisfies the requirement valorant.py
ERROR: No matching distribution found for valorant.py
~/ValorantBot$ python -m poetry add valorant.py

[ValueError]
Could not find a matching version of package valorant.py
~/ValorantBot$ easy_install valorant.py
WARNING: The easy_install command is deprecated and will be removed in a future version.
Searching for valorant.py
Reading https://pypi.org/simple/valorant.py/
Couldn't find index page for 'valorant.py' (maybe misspelled?)
Scanning index of all packages (this may take a while)
Reading https://pypi.org/simple/
No local packages or working download links found for valorant.py
error: Could not find suitable distribution for Requirement.parse('valorant.py')`

Attribute Error: 'AsyncClient' object has no attribute 'handle'

I have this simple code as mentioned below

import valorant

KEY = "token"
client = valorant.AsyncClient(KEY)
async def _main():

  agents = await client.get_characters()

  for agent in agents:
      print(agent.name)
  
  print("done")
valorant.run(_main())

So when I run this simple code I get an error saying Attribute Error: 'AsyncClient' object has no attribute 'handle'

Any idea on what wrong I'm doing?

Error running on macOS

Hi,
I am trying to use the package, but unfortunately I am encountering an error when importing it.
When calling the "from .lexicon import Lex", there's an error in the LOCALE setting.
LOCALE = locale.getdefaultlocale()[0].replace("_", "-"), but my macOS returns (None, 'UTF8') to the "locale.getdefaultlocale()" call. The error is as follows:
"AttributeError: 'NoneType' object has no attribute 'replace'"
I see in the documentation of "Client" that it has the option to be None, so I think this was considered in the client.py but not on the lexicon.

The fix should be easy, it think: LOCALE = locale.getdefaultlocale()[0].replace("_", "-") if locale.getdefaultlocale()[0] else None

probleme de klef API

bonjours ,je suis nouveau sur cette bibliothèque et j'ai essayé le code suivant
`

import os
import valorant

KEY = os.environ["RGAPI-749ec-2cb4-40eb-88bc-*********"]

client = valorant.Client(KEY, locale=None)

skins = client.get_skins()
name = input("Search a Valorant Skin Collection: ")

results = skins.find_all(name=lambda x: name.lower() in x.lower())

print("\nResults: ")
for skin in results:
print(f"\t{skin.name.ljust(21)} ({skin.localizedNames['ja-JP']})")

et j'obtien l'erreur suivante
KeyError: 'RGAPI-749ec-2cb4-40eb-88bc-*********'
`
les codes où j'initialise la clé API avec un simple string fonctionne correctement mais pas ceux avec les crocher donc des liste

Client() constructor results in 400 error if no locale is specified

Issue: When using the Client() constructor without specifying a locale, the underlying request to the Riot API results in a 400 error. It seems the Riot API expects a locale parameter, and not having one causes this error.

Steps to Reproduce:

  1. Initialize the client without specifying a locale:
client = valorant.Client(YOUR_API_KEY)
  1. Observe the 400 error.

Expected Behavior: The library should either provide a default locale (if applicable) or raise a more descriptive error guiding the user to provide the necessary locale parameter.

Temporary Workaround: Specifying locale=None when initializing the client appears to prevent this error:

client = valorant.Client(YOUR_API_KEY, locale=None)

Code_iRegNhVT3w

Valorant Rank

Is there a way to get the current Competitive Rank of a Player and or their Points?
I can't find a way.

Redesign Request Implementation

Current web and client request implementation was done hastily, definitely a good idea to refactor it before working on adding endpoint coverage for matches and users. Waiting on 0.5.0 milestone

  • Create an abstract class for requests.
  • Split classes for web requests and client requests.
  • Make requester synergize with web, client, and local requests.

Update Local Client Implementation

Local Client Implementation is greatly under-developed, needs more work to be worth using. Waiting on 0.5.0 milestone.

  • Create working local client
  • Cover endpoints for session, friends, match, and player.
  • Update methods for getting local data

Matchlist not retrievable

I am getting a 403 Client Error when I try to get the match list of a specific user. I did see the closed issue (#36), however, all the other information is retrievable, but it's just the match list that throws the error. I can search the skins, print out the other attributes with an AccountDTO (gameName, puuid, tagLine), just the match list fails.

Code:

import valorant

KEY = "my key"
client = valorant.Client(KEY, locale=None)

# print the skin collection typed in by user
skins = client.get_skins()
name = input("Search a Valorant Skin Collection: ")
results = skins.find_all(name=lambda x: name.lower() in x.lower())
print("\nResults: ")
for skin in results:
    print(f"\t{skin.name.ljust(21)} ({skin.localizedNames['ja-JP']})")

# get viper object
agents = client.get_characters()
print(agents.get("Viper"))
print()

# try to get account matchlist
acc = client.get_user_by_name(name="BabyJ#Halo", route='americas')
print("ACCOUNT ATTRIBUTES")
print(acc.gameName, acc.puuid, acc.tagLine)
print()
matches = acc.matchlist()

Output:

Search a Valorant Skin Collection: prime

Results: 
        Prime//2.0 Odin       (プライム//2.0 オーディン)
        Prime Vandal          (プライム ヴァンダル)
        Prime//2.0 Phantom    (プライム//2.0 ファントム)
        Prime//2.0 Bucky      (プライム//2.0 バッキー)
        Prime//2.0 Frenzy     (プライム//2.0 フレンジー)
        Prime Classic         (プライム クラシック)
        Prime Guardian        (プライム ガーディアン)
        Prime Spectre         (プライム スペクター)
        Prime Axe             (プライム アックス)
        Prime//2.0 Karambit   (プライム//2.0 カラムビット)
<class ContentItemDTO @assetName=Default__Pandemic_PrimaryAsset_C @id=707EAB51-4836-F488-046A-CDA6BF494859 @localizedNames={'ar-AE': 'فايبر', 'de-DE': 'Viper', 'en-US': 'Viper', 'es-ES': 'Viper', 'es-MX': 'Viper', 'fr-FR': 'Viper', 'id-ID': 'Viper', 'it-IT': 'Viper', 'ja-JP': 'ヴァイパー', 'ko-KR': '바이퍼', 'pl-PL': 'Viper', 'pt-BR': 'Viper', 'ru-RU': 'Viper', 'th-TH': 'Viper', 'tr-TR': 'VIPER', 'vi-VN': 'Viper', 'zh-CN': '蝰蛇', 'zh-TW': '薇蝮'} @name=Viper>

ACCOUNT ATTRIBUTES
BabyJ uvPbmdPpXztUUnRD8XpUqEXXJnqgXCiTUkFFBoNBMxIS-iowse7VtRLCSOm2hua7bwn7-X_9zi0xmQ Halo

Traceback (most recent call last):
  File "/Users/gyuen/Documents/GitHub/val-discord-tracker/bot.py", line 26, in <module>
    matches = acc.matchlist()
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/valorant/objects/account.py", line 22, in matchlist
    l = self.handle.call("GET", "matchlists", puuid=self.puuid)
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/valorant/caller.py", line 57, in call
    r.raise_for_status()
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/requests/models.py", line 1022, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 403 Client Error: Forbidden for url: https://na.api.riotgames.com/val/match/v1/matchlists/by-puuid/uvPbmdPpXztUUnRD8XpUqEXXJnqgXCiTUkFFBoNBMxIS-iowse7VtRLCSOm2hua7bwn7-X_9zi0xmQ

Deprecate ClientCaller?

valorant.py is a product approved project for Valorant endpoints, so I do have to follow the Developer Guidelines and whatnot.

Using and interacting with Valorant's internal API (https://pd.{code}.a.pvp.net/) isn't allowed and discouraged, so this will be deprecated moving forward from v1.0.2.

ClientCaller was an internal class anyway, so this won't be a breaking change.

Bad Request at initialize

  File "C:\Users\Lu\AppData\Local\Programs\Python\Python39\lib\site-packages\valorant\client.py", line 37, in __init__
    self.reload()
  File "C:\Users\Lu\AppData\Local\Programs\Python\Python39\lib\site-packages\valorant\client.py", line 58, in reload
    r.raise_for_status()
  File "C:\Users\Lu\AppData\Local\Programs\Python\Python39\lib\site-packages\requests\models.py", line 943, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 400 Client Error: Bad Request for url: https://na.api.riotgames.com/val/content/v1/contents?locale=en-PH

403 forbidden

import valorant

KEY = "my personal api key"
client = valorant.Client(KEY)

agents = client.get_characters()

print(agents.get("Viper"))

Returns

Traceback (most recent call last):
  File "c:/Users/clyde/Documents/disco/main.py", line 11, in <module>
    client = valorant.Client(KEY)
  File "C:\Users\clyde\AppData\Local\Programs\Python\Python38\lib\site-packages\valorant\client.py", line 71, in __init__
    self.get_content(cache=True)
  File "C:\Users\clyde\AppData\Local\Programs\Python\Python38\lib\site-packages\valorant\client.py", line 181, in get_content
    content = self._content_if_cache()
  File "C:\Users\clyde\AppData\Local\Programs\Python\Python38\lib\site-packages\valorant\client.py", line 81, in _content_if_cache
    return ContentDTO(self.handle.call("GET", "content"))
  File "C:\Users\clyde\AppData\Local\Programs\Python\Python38\lib\site-packages\valorant\caller.py", line 52, in call
    r.raise_for_status()
  File "C:\Users\clyde\AppData\Local\Programs\Python\Python38\lib\site-packages\requests\models.py", line 960, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 403 Client Error: Forbidden for url: https://na.api.riotgames.com/val/content/v1/contents?locale=de-DE

Issue: No issues

There are no issues documenting any improvements that should be made. This is an issue issue that can be resolved by there being issues. However by creating this issue the issue is then resolved until it is in which then the issue is unresolved because the issue issue issue in once more an issue.

get_leaderboard timeout

async def lead123(msg: Message):
    client = valorant.Client(KEY, region="jp")
    lb = client.get_leaderboard(size=15)
    print("Top Players in EU:\n")
    # Print all players on the leaderboard.
    for p in lb.players:
        print(f"#{p.leaderboardRank} - {p.gameName} ({p.numberOfWins} wins)")

I'm using this command for a bot,but err occurred like this
region="eu" also time out.Is this a normal Internet connection err?
my api key isn't invalid

error handling command: lead
Traceback (most recent call last):
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\urllib3\connection.py", line 174, in _new_conn
    conn = connection.create_connection(
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\urllib3\util\connection.py", line 72, in create_connection
    for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.1520.0_x64__qbz5n2kfra8p0\lib\socket.py", line 955, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno 11001] getaddrinfo failed

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\urllib3\connectionpool.py", line 703, in urlopen
    httplib_response = self._make_request(
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\urllib3\connectionpool.py", line 386, in _make_request
    self._validate_conn(conn)
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\urllib3\connectionpool.py", line 1040, in _validate_conn
    conn.connect()
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\urllib3\connection.py", line 358, in connect
    self.sock = conn = self._new_conn()
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\urllib3\connection.py", line 186, in _new_conn
    raise NewConnectionError(
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPSConnection object at 0x0000029608D670A0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\requests\adapters.py", 
line 489, in send
    resp = conn.urlopen(
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\urllib3\connectionpool.py", line 785, in urlopen
    retries = retries.increment(
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\urllib3\util\retry.py", line 592, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='jp.api.riotgames.com', port=443): Max retries exceeded with url: /val/content/v1/contents?locale=zh-CN (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x0000029608D670A0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))    

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\khl\command\command.py", line 87, in handle
    await self.execute(msg, *args)
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\khl\command\command.py", line 119, in execute
    await self.handler(*args)
  File "C:\Clone_Gitee\Valorant-kaiheila-bot\code\main.py", line 137, in lead
    await lead123(msg)
  File "C:\Clone_Gitee\Valorant-kaiheila-bot\code\val.py", line 50, in lead123
    client = valorant.Client(KEY, region="jp")
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\valorant\client.py", line 72, in __init__
    self.get_content(cache=True)
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\valorant\client.py", line 178, in get_content
    content = self._content_if_cache()
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\valorant\client.py", line 80, in _content_if_cache
    return ContentDTO(self.handle.call("GET", "content"))
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\valorant\caller.py", line 52, in call
    r = self.sess.request(m, url, params=params)
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\requests\sessions.py", 
line 587, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\requests\sessions.py", 
line 701, in send
    r = adapter.send(request, **kwargs)
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\requests\adapters.py", 
line 565, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='jp.api.riotgames.com', port=443): Max retries exceeded with url: /val/content/v1/contents?locale=zh-CN (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x0000029608D670A0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')) 

And this function works well

client = valorant.Client(KEY, locale=None)
lb = client.get_leaderboard(size=100)

# Find all the players on the leaderboard with 10 wins.
# `.find_all` is an alias for `.get_all`, provided for semantics.
players = lb.players.get_all(numberOfWins=10)

for p in lb.players:
    print(f"#{p.leaderboardRank} - {p.gameName} ({p.numberOfWins} wins)")

Question on API: Personal API Key request

Hi everyone,

The question is a bit off this library. I am looking into making a personal app for tracking my progress in Valorant. Online trackers I could find do not give me all the stats I want, so I want to make my own in Python.

I understand the development API key does not give me access to match history. I suppose I should request for a Personal API key, but Valorant cannot be selected in the Product Game focus section.

I was wondering if any of you tried this before and would have a solution for this. I really don't want to log all my stats manually ...

Thanks for your help.

Cannot get AccountDTO via client.get_user(puuid)

Getting an AccountDTO by name and tagline works (client.get_user_by_name(gameName#tagline)), but getting an AccountDTO by puuid (client.get_user())does not work.

Example using SEN ShahZam#huh:
client.get_user("ZEwGdkv9sZL2pgwPUfEG-SnldEtqwaqW-neW8y7HL2jmdNptEKpgD598uUA-K7CUR-j67ktFdqJNhg") # SEN ShahZam, does not work
client.get_user_by_name("SEN ShahZam#huh") # does work

Async Support

As the title suggests, support for asynchronous requests would be great.

Missing sub-packages?

Upon installing valorant.py from PyPI and importing it, an error is immediately thrown:

Traceback (most recent call last):
  File "main.py", line 1, in <module>
    import valorant
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/valorant/__init__.py", line 3, in <module>
    from .client import Client
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/valorant/client.py", line 9, in <module>
    from .objects import (
ModuleNotFoundError: No module named 'valorant.objects'

Not the best look. 🤦🏽 I forgot to include valorant.objects and valorant.local into the packages attribute in setup.py. My fault for pushing a major release at 1am on a school night =P

Local Client Error.

I'm currently getting an error when running your local client example.

AttributeError: partially initialized module 'valorant has no attribute 'LocalClient' (most likely due to a circular import)

Would you perhaps know what is currently causing this error? I have installed the package through pip install Valorant line.

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.