Code Monkey home page Code Monkey logo

learn-java-asm's Introduction

Learn Java ASM

Gitee Github GitHub GitHub stars GitHub forks GitHub issues GitHub last commit

๐Ÿ Java ASM is an open-source java library for manipulating bytecode.

ๆœฌ้กน็›ฎๆ—จๅœจ็ณป็ปŸๅœฐไป‹็ปๅฆ‚ไฝ•ๅญฆไน Java ASM็š„็Ÿฅ่ฏ†๏ผŒไธป่ฆๆถ‰ๅŠCore APIใ€OPCODEๅ’ŒTree API็ญ‰ๅ†…ๅฎนใ€‚่‡ณไบŽๅญฆไน ็š„้ข„ๆœŸ็›ฎๆ ‡ๅฐฑๆ˜ฏ๏ผŒ็”จไธ€ไธชๅฝข่ฑก็š„่ฏดๆณ•ๆฅ่ฎฒ๏ผŒ่ฎฉๅญ—่Š‚็ ๅœจไฝ ็š„ๆ‰‹ไธญโ€œ่ทณ่ˆžโ€๏ผš็œ‹็œ‹ไฝ ็š„ๅทฆๆ‰‹๏ผŒไธ€ไธชๅฎŒๆ•ด็š„ClassFileๆ‹†่งฃๆˆไธๅŒ็ฒ’ๅบฆ็š„ๅญ—่Š‚็ ๅ†…ๅฎน๏ผ›็œ‹็œ‹ไฝ ็š„ๅณๆ‰‹๏ผŒไธๅŒ็ฒ’ๅบฆ็š„ๅญ—่Š‚็ ๅ†…ๅฎนๅˆ้‡ๆ–ฐ็ป„็ป‡ๆˆไธ€ไธชClassFile็ป“ๆž„ใ€‚

           _______                                 ,        _        _        
          (,     /'                              /'/      /' `\     ' )     _)
               /'                              /' /     /'   ._)    //  _/~/' 
             /'____ .     ,   ____          ,/'  /     (____      /'/_/~ /'   
   _       /'/'    )|    /  /'    )        /`--,/           )   /' /~  /'     
 /' `    /'/'    /' |  /' /'    /'       /'    /          /'  /'     /'       
(_____,/' (___,/(___|/(__(___,/(__   (,/'     (_,(_____,/'(,/'      (_,       

ๅฆ‚ๆžœๆˆ‘ไปฌๅญฆไผšไบ†Java ASMไน‹ๅŽ๏ผŒๅฏ่ƒฝ่ฟ˜ๆ˜ฏ้œ€่ฆไธ€ไธชๅ…ทไฝ“็š„ๅบ”็”จๅœบๆ™ฏๆฅ่ฟ›่กŒไฝฟ็”จ๏ผŒ่ฟ™ไธชๅœบๆ™ฏๅฐฑๆ˜ฏ็”ฑ Java Agent ๅผ€ๅฏ็š„ใ€‚

้‚ฃไนˆ๏ผŒJava ASMๅ’ŒJava Agent่ฟ™ไธค่€…ไน‹้—ดๆ˜ฏไป€ไนˆๅ…ณ็ณปๅ‘ข๏ผŸ Java ASMๆ˜ฏไธ€ไธชๆ“ไฝœๅญ—่Š‚็ ็š„ๅทฅๅ…ท๏ผˆtool๏ผ‰๏ผŒ่€ŒJava Agentๆไพ›ไบ†ไฟฎๆ”นๅญ—่Š‚็ ็š„ๆœบไผš๏ผˆopportunity๏ผ‰ใ€‚ ๆƒณๅƒ่ฟ™ๆ ทไธ€ไธชๅœบๆ™ฏ๏ผš ๆœ‰ไธ€ไธชJVMๆญฃๅœจ่ฟ่กŒ๏ผŒ็ช็„ถJava AgentๅœจJVMไธŠๆ‰“ๅผ€ไธ€ๆ‰‡ๅคง้—จ๏ผŒJava ASM้€š่ฟ‡ๅคง้—จๅ†ฒ่ฟ›JVM้‡Œ้ข๏ผŒๅฐฑ่ฆๅผ€ๅง‹ไฟฎๆ”นๅญ—่Š‚็ ไบ†ใ€‚

.class --- Java ASM --- Java Agent --- JVM

ๅ†ๆ‰“ไธชๆฏ”ๆ–น๏ผŒJava ASMๅฐฑๆ˜ฏโ€œไธ€ๅŒนๅƒ้‡Œ้ฉฌโ€๏ผŒ่€ŒJava Agentๅฐฑๆ˜ฏโ€œไผฏไนโ€ใ€‚ ๅฆ‚ๆžœ้‡ไธๅˆฐโ€œไผฏไนโ€๏ผŒๅฏ่ƒฝโ€œๅƒ้‡Œ้ฉฌโ€็š„ๆ‰่ƒฝๅฐฑๅŸ‹ๆฒกไบ†๏ผ›ๆญฃๅ› ไธบๆœ‰ไบ†โ€œไผฏไนโ€๏ผŒโ€œๅƒ้‡Œ้ฉฌโ€ๅฐฑๆœ‰ไบ†ๆ–ฝๅฑ•ๆ‰่ƒฝ็š„ๆœบไผšใ€‚

ไธ–ๆœ‰ไผฏไน๏ผŒ็„ถๅŽๆœ‰ๅƒ้‡Œ้ฉฌใ€‚
ๅƒ้‡Œ้ฉฌๅธธๆœ‰๏ผŒ่€Œไผฏไนไธๅธธๆœ‰ใ€‚
ๆ•…่™ฝๆœ‰ๅ้ฉฌ๏ผŒ็ฅ—่พฑไบŽๅฅด้šถไบบไน‹ๆ‰‹๏ผŒ้ชˆๆญปไบŽๆงฝๆžฅไน‹้—ด๏ผŒไธไปฅๅƒ้‡Œ็งฐไนŸใ€‚

1. ๅฆ‚ไฝ•ไฝฟ็”จ

1.1 ไปฃ็ ไธ‹่ฝฝ

Gitee Github

ไปŽGitee ไป“ๅบ“ไธ‹่ฝฝไปฃ็ ๏ผŒไฝฟ็”จๅฆ‚ไธ‹ๅ‘ฝไปค๏ผš

git clone https://gitee.com/lsieun/learn-java-asm

ไปŽGitHub ไป“ๅบ“ไธ‹่ฝฝไปฃ็ ๏ผŒไฝฟ็”จๅฆ‚ไธ‹ๅ‘ฝไปค๏ผš

git clone https://github.com/lsieun/learn-java-asm

1.2 ๅผ€ๅ‘็Žฏๅขƒ

Licence Git Java Apache Maven IntelliJ IDEA

ๅœจlearn-java-asm้กน็›ฎๅฝ“ไธญ๏ผŒไฝฟ็”จ็š„ASM็‰ˆๆœฌไธบ9.0ใ€‚ๅฆ‚ๆžœๆƒณไฝฟ็”จๆœ€ๆ–ฐMaven Central ็‰ˆๆœฌ๏ผŒๅฏไปฅไฟฎๆ”นpom.xmlๆ–‡ไปถไธญ็š„asm.versionๅฑžๆ€ง๏ผš

<asm.version>9.0</asm.version>

1.3. ่ฟ่กŒไปฃ็ 

ๅœจlearn-java-asm้กน็›ฎๅฝ“ไธญ๏ผŒๅŒ…ๅซmainๆ–นๆณ•็š„็ฑปไธป่ฆไฝไบŽrunๅŒ…๏ผˆsrc/main/java/run๏ผ‰ใ€‚

2. ่ฏพ็จ‹่ต„ๆ–™

51cto Bilibili lsieun.github.io

  • ใ€ŠJava ASM็ณปๅˆ—ไธ€๏ผšCore APIใ€‹
  • ใ€ŠJava ASM็ณปๅˆ—ไบŒ๏ผšOPCODEใ€‹
  • ใ€ŠJava ASM็ณปๅˆ—ไธ‰๏ผšTree APIใ€‹

2.1. ASM็š„็ป„ๆˆ้ƒจๅˆ†

ไปŽ็ป„ๆˆ็ป“ๆž„ไธŠๆฅ่ฏด๏ผŒJava ASMๆœ‰Core APIๅ’ŒTree APIไธค้ƒจๅˆ†็ป„ๆˆใ€‚

                                   โ”Œโ”€โ”€โ”€ asm.jar
                                   โ”‚
            โ”Œโ”€โ”€โ”€ Core API โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€ asm-util.jar
            โ”‚                      โ”‚
            โ”‚                      โ””โ”€โ”€โ”€ asm-commons.jar
Java ASM โ”€โ”€โ”€โ”ค
            โ”‚
            โ”‚                      โ”Œโ”€โ”€โ”€ asm-tree.jar
            โ””โ”€โ”€โ”€ Tree API โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
                                   โ””โ”€โ”€โ”€ asm-analysis.jar

ไปŽไพ่ต–ๅ…ณ็ณป่ง’ๅบฆไธŠ่ฏด๏ผŒJava ASMๅฝ“ไธญ็š„ๅ„ไธช.jarไน‹้—ด็š„ไพ่ต–ๅ…ณ็ณปๅฆ‚ไธ‹๏ผš

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                    โ”‚
โ”‚     util           โ”‚    analysis    โ”‚         commons    โ”‚
โ”‚             โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”             โ”‚
โ”‚             โ”‚             tree             โ”‚             โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                           core                           โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

2.2. ASM่ƒฝๅคŸๅšไป€ไนˆ

ไปŽๅบ”็”จ็š„่ง’ๅบฆๆฅ่ฏด๏ผŒJava ASMๅฏไปฅ่ฟ›่กŒClass Generationใ€Class Transformationๅ’ŒClass Analysisไธ‰ไธช็ฑปๅž‹็š„ๆ“ไฝœใ€‚

                                   โ”Œโ”€โ”€โ”€ find potential bugs
                                   โ”‚
            โ”Œโ”€โ”€โ”€ analysis โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€ detect unused code
            โ”‚                      โ”‚
            โ”‚                      โ””โ”€โ”€โ”€ reverse engineer code
            โ”‚
Java ASM โ”€โ”€โ”€โ”ผโ”€โ”€โ”€ generation
            โ”‚
            โ”‚                      โ”Œโ”€โ”€โ”€ optimize programs
            โ”‚                      โ”‚
            โ””โ”€โ”€โ”€ transformation โ”€โ”€โ”€โ”ผโ”€โ”€โ”€ obfuscate programs
                                   โ”‚
                                   โ””โ”€โ”€โ”€ insert performance monitoring code

2.3. top, nullๅ’Œvoid

ๅœจไธ‹่กจๅฝ“ไธญ๏ผŒtopใ€nullๅ’Œvoidไธ‰่€…็›ธๅฏนๅบ”็š„่ฝฌๆขๅ€ผ๏ผš

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   .class    โ”‚          ASM Type          โ”‚      ASM Value in Frame        โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚     top     โ”‚            null            โ”‚ BasicValue.UNINITIALIZED_VALUE โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ aconst_null โ”‚ BasicInterpreter.NULL_TYPE โ”‚   BasicValue.REFERENCE_VALUE   โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚    void     โ”‚       Type.VOID_TYPE       โ”‚              null              โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

3. ๆณจๆ„ไบ‹้กน

3.1. ๆทปๅŠ typoๅญ—ๅ…ธ

ๅœจ็ผ–ๅ†™ไปฃ็ ็š„่ฟ‡็จ‹ไธญ๏ผŒไผš้‡ๅˆฐไธ€ไบ›Typoๆ็คบ๏ผŒๅŽŸๅ› ๆ˜ฏinsn็ญ‰ๅ†…ๅฎนไธๆ˜ฏๅˆๆณ•็š„ๅ•่ฏใ€‚

่งฃๅ†ณๆ–นๆณ•๏ผšๅ€ŸๅŠฉไบŽIntelliJ IDEA็š„Spellchecking ็š„ๅŠŸ่ƒฝใ€‚

ๆ“ไฝœๆญฅ้ชค๏ผš

  • ็ฌฌไธ€ๆญฅ๏ผŒๅœจSettings/Preferencesๅฝ“ไธญ๏ผŒๆ‰พๅˆฐEditor | Natural Languages | Spellingไฝ็ฝฎใ€‚
  • ็ฌฌไบŒๆญฅ๏ผŒๅœจๅณไพง็š„Custom dictionariesไฝ็ฝฎ๏ผŒๆทปๅŠ custom dictionary๏ผŒๅœจlearn-java-asm้กน็›ฎๆ น็›ฎๅฝ•ไธ‹๏ผŒๆœ‰ไธ€ไธชaccepted-words.dicๆ–‡ไปถ๏ผŒๆทปๅŠ ่ฏฅๆ–‡ไปถๅณๅฏใ€‚

้…็ฝฎๅฎŒๆˆไน‹ๅŽ๏ผŒ้œ€่ฆ้‡ๆ–ฐๅฏๅŠจIntelliJ IDEAๆ‰่ƒฝ็”Ÿๆ•ˆใ€‚

3.2. ๆŸฅ็œ‹็ฌ”่ฎฐ

ๅœจ็ผ–ๅ†™ไปฃ็ ็š„่ฟ‡็จ‹ไธญ๏ผŒไธบไบ†ๆ–นไพฟ็†่งฃไปฃ็ ๏ผŒๆˆ‘ๆทปๅŠ ไบ†ไธ€ไบ›็ฌ”่ฎฐ๏ผŒๆ ผๅผๅฆ‚ไธ‹๏ผš

NOTE: ๅธŒๆœ›่ฟ™ๆ˜ฏไธ€ๆกๆœ‰็”จ็š„็ฌ”่ฎฐ

ไฝ†ๆ˜ฏ๏ผŒๅœจ้ป˜่ฎคๆƒ…ๅ†ตไธ‹๏ผŒๅฎƒๅนถไธไผš้ซ˜ไบฎๆ˜พ็คบ๏ผŒๅ› ๆญคไธๅฎนๆ˜“่ขซๅฏŸ่ง‰ๅˆฐใ€‚

่งฃๅ†ณๆ–นๆณ•๏ผšๅ€ŸๅŠฉไบŽIntelliJ IDEA็š„TODO comments ๅŠŸ่ƒฝใ€‚

ๆ“ไฝœๆญฅ้ชค๏ผš

  • ็ฌฌไธ€ๆญฅ๏ผŒๅœจSettings/Preferencesๅฝ“ไธญ๏ผŒๆ‰พๅˆฐEditor | TODOไฝ็ฝฎใ€‚
  • ็ฌฌไบŒๆญฅ๏ผŒๅœจๅณไพง็š„Patternsไฝ็ฝฎ๏ผŒๆทปๅŠ ไปฅไธ‹ๅ†…ๅฎน๏ผš
\bnote\b.*

้…็ฝฎๅฎŒๆˆไน‹ๅŽ๏ผŒ้œ€่ฆ้‡ๆ–ฐๅฏๅŠจIntelliJ IDEAๆ‰่ƒฝ็”Ÿๆ•ˆใ€‚

3.3. ๅ…ณ้—ญ่ฐƒ่ฏ•ไฟกๆฏ

ๅœจ้ป˜่ฎคๆƒ…ๅ†ตไธ‹๏ผŒ่ฟ่กŒไปปไฝ•็ฑป๏ผŒ้ƒฝไผš่พ“ๅ‡บ่ฐƒ่ฏ•ไฟกๆฏใ€‚ๅœจ่ฐƒ่ฏ•ไฟกๆฏไธญ๏ผŒไผšๅธฆๆœ‰[DEBUG]ๆ ‡่ฏ†ใ€‚

ๅฆ‚ๆžœๆƒณๅ…ณ้—ญ่ฐƒ่ฏ•ไฟกๆฏ๏ผŒๅฏไปฅไฟฎๆ”นlsieun.cst.Const็ฑป็š„DEBUGๅญ—ๆฎตๅ€ผไธบfalse๏ผˆ้ป˜่ฎคๅ€ผไธบtrue๏ผ‰๏ผš

public class Const {
    public static final boolean DEBUG = false;
}

็„ถๅŽ๏ผŒๆ‰ง่กŒmvn clean compileๅฏน็ฑป่ฟ›่กŒ้‡ๆ–ฐ็ผ–่ฏ‘๏ผš

mvn clean compile

็ญ‰ๅพ…็ผ–่ฏ‘ๅฎŒๆˆไน‹ๅŽ๏ผŒๅ†ๆฌก่ฟ่กŒ็จ‹ๅบใ€‚

4. ไบคๆตๅ้ฆˆ

  • ๅฆ‚ๆžœๆ‚จๆœ‰ๅฅฝ็š„ๆƒณๆณ•๏ผŒๅฏไปฅๆissues
  • ๅฆ‚ๆžœๆ‚จๆƒณ่ดก็Œฎไปฃ็ ๏ผŒๅฏไปฅ่ฟ›่กŒfork
  • ๅฆ‚ๆžœๆ‚จๆœ‰ๅ…ถๅฎƒ้—ฎ้ข˜๏ผŒๅฏไปฅๆทปๅŠ QQ็พค๏ผˆๅ‚่€ƒ่”็ณปๆ–นๅผ๏ผ‰

5. ่”็ณปๆ–นๅผ

wechat Tencent QQ QQ Group Javaๅญ—่Š‚็ ไบคๆตQQ็พค

6. License

This project is licensed under the MIT License. See the LICENSE file for the full license text.

learn-java-asm's People

Contributors

lsieun 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

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.