Comments (2)
Hi @Sanmayce, sorry to reply late.
Thanks for adding HighwayHash!
considering you wrote far more stronger hasher than the non-crypto ones?!
Yes, this is plausible. All 'reasonable' hashes can mix sufficiently to avoid collisions for non-adversarial input.
The extra mixing and larger state in HighwayHash is useful for fingerprints/MAC applications, especially for adversarial inputs.
Excuse my amateurism, but I couldn't see how to integrate your optimized CC functions, I use only C.
The large difference in performance between C and C++ is because the C version does not use SIMD instructions.
It is indeed a bit complicated to build the optimized version. It could be interesting to port HighwayHash to the Highway SIMD library, which is easier to build and supports CMake.
please share some thoughts on how you see collision benchmarking done right
Ah, that would be very interesting to see studied in more detail.
Bob Jenkins had a very thorough test program which filled memory with a hash table.
Several TiB are now readily available in the cloud, I would imagine if run today,
this could yield new results and possibly some surprises.
from highwayhash.
It took ~240hours (on 8 cores CPU) to complete Bob Jenkins' Froggy with Gumbotron_YMM, no collisions reported.
Here is the package, www.sanmayce.com/Froggy_Gumbotron_XXH128_8threads.zip
H:\Froggy_Gumbotron_XXH128_8threads>dir
09/06/2021 11:51 PM 33,369 froggy.cpp
09/07/2021 12:19 AM 84,992 Froggy_Gumbotron.exe
09/07/2021 12:19 AM 89,088 Froggy_Spooky.exe
09/07/2021 12:19 AM 109,568 Froggy_XXH128.exe
09/06/2021 11:50 PM 75,384 Gumbotron_YMM.h
09/05/2021 06:09 AM 203 makeEXE.bat
09/04/2021 02:17 AM 8,522 spooky.cpp
09/01/2021 08:18 PM 11,884 spooky.h
08/26/2021 08:44 AM 1,855 xxhash.c
08/26/2021 08:44 AM 184,809 xxhash.h
D:\Froggy_Gumbotron_XXH128_8threads>Froggy_Gumbotron.exe
count 2^^3, covered 2^^5 key pairs (thread 1)
count 2^^4, covered 2^^7 key pairs (thread 1)
count 2^^3, covered 2^^5 key pairs (thread 7)
count 2^^3, covered 2^^5 key pairs (thread 5)
count 2^^3, covered 2^^5 key pairs (thread 4)
count 2^^4, covered 2^^7 key pairs (thread 4)
count 2^^3, covered 2^^5 key pairs (thread 2)
count 2^^4, covered 2^^7 key pairs (thread 7)
count 2^^5, covered 2^^9 key pairs (thread 7)
count 2^^4, covered 2^^7 key pairs (thread 5)
count 2^^5, covered 2^^9 key pairs (thread 5)
count 2^^3, covered 2^^5 key pairs (thread 3)
count 2^^4, covered 2^^7 key pairs (thread 3)
count 2^^5, covered 2^^9 key pairs (thread 3)
count 2^^4, covered 2^^7 key pairs (thread 2)
count 2^^5, covered 2^^9 key pairs (thread 2)
count 2^^6, covered 2^^11 key pairs (thread 7)
count 2^^7, covered 2^^13 key pairs (thread 7)
count 2^^6, covered 2^^11 key pairs (thread 5)
count 2^^5, covered 2^^9 key pairs (thread 1)
count 2^^6, covered 2^^11 key pairs (thread 1)
count 2^^6, covered 2^^11 key pairs (thread 3)
count 2^^3, covered 2^^5 key pairs (thread 6)
count 2^^6, covered 2^^11 key pairs (thread 2)
count 2^^7, covered 2^^13 key pairs (thread 2)
count 2^^8, covered 2^^15 key pairs (thread 7)
count 2^^7, covered 2^^13 key pairs (thread 5)
count 2^^5, covered 2^^9 key pairs (thread 4)
count 2^^6, covered 2^^11 key pairs (thread 4)
count 2^^7, covered 2^^13 key pairs (thread 3)
count 2^^4, covered 2^^7 key pairs (thread 6)
count 2^^5, covered 2^^9 key pairs (thread 6)
count 2^^8, covered 2^^15 key pairs (thread 2)
count 2^^9, covered 2^^17 key pairs (thread 7)
count 2^^8, covered 2^^15 key pairs (thread 5)
count 2^^7, covered 2^^13 key pairs (thread 1)
count 2^^7, covered 2^^13 key pairs (thread 4)
count 2^^8, covered 2^^15 key pairs (thread 3)
count 2^^3, covered 2^^5 key pairs (thread 0)
count 2^^6, covered 2^^11 key pairs (thread 6)
count 2^^9, covered 2^^17 key pairs (thread 2)
count 2^^10, covered 2^^19 key pairs (thread 7)
count 2^^9, covered 2^^17 key pairs (thread 5)
count 2^^8, covered 2^^15 key pairs (thread 1)
count 2^^8, covered 2^^15 key pairs (thread 4)
count 2^^9, covered 2^^17 key pairs (thread 3)
count 2^^4, covered 2^^7 key pairs (thread 0)
count 2^^7, covered 2^^13 key pairs (thread 6)
count 2^^10, covered 2^^19 key pairs (thread 2)
count 2^^8, covered 2^^15 key pairs (thread 6)
count 2^^10, covered 2^^19 key pairs (thread 5)
count 2^^9, covered 2^^17 key pairs (thread 1)
count 2^^9, covered 2^^17 key pairs (thread 4)
count 2^^10, covered 2^^19 key pairs (thread 3)
count 2^^5, covered 2^^9 key pairs (thread 0)
count 2^^11, covered 2^^21 key pairs (thread 7)
count 2^^11, covered 2^^21 key pairs (thread 2)
count 2^^9, covered 2^^17 key pairs (thread 6)
count 2^^11, covered 2^^21 key pairs (thread 5)
count 2^^10, covered 2^^19 key pairs (thread 1)
count 2^^10, covered 2^^19 key pairs (thread 4)
count 2^^11, covered 2^^21 key pairs (thread 3)
count 2^^6, covered 2^^11 key pairs (thread 0)
count 2^^12, covered 2^^23 key pairs (thread 7)
count 2^^12, covered 2^^23 key pairs (thread 2)
count 2^^10, covered 2^^19 key pairs (thread 6)
count 2^^12, covered 2^^23 key pairs (thread 5)
count 2^^11, covered 2^^21 key pairs (thread 1)
count 2^^11, covered 2^^21 key pairs (thread 4)
count 2^^7, covered 2^^13 key pairs (thread 0)
count 2^^12, covered 2^^23 key pairs (thread 3)
count 2^^13, covered 2^^25 key pairs (thread 7)
count 2^^13, covered 2^^25 key pairs (thread 2)
count 2^^11, covered 2^^21 key pairs (thread 6)
count 2^^13, covered 2^^25 key pairs (thread 5)
count 2^^12, covered 2^^23 key pairs (thread 1)
count 2^^12, covered 2^^23 key pairs (thread 4)
count 2^^8, covered 2^^15 key pairs (thread 0)
count 2^^13, covered 2^^25 key pairs (thread 3)
count 2^^12, covered 2^^23 key pairs (thread 6)
count 2^^14, covered 2^^27 key pairs (thread 5)
count 2^^14, covered 2^^27 key pairs (thread 2)
count 2^^13, covered 2^^25 key pairs (thread 1)
count 2^^9, covered 2^^17 key pairs (thread 0)
count 2^^13, covered 2^^25 key pairs (thread 4)
count 2^^14, covered 2^^27 key pairs (thread 7)
count 2^^13, covered 2^^25 key pairs (thread 6)
count 2^^14, covered 2^^27 key pairs (thread 3)
count 2^^10, covered 2^^19 key pairs (thread 0)
count 2^^14, covered 2^^27 key pairs (thread 1)
count 2^^14, covered 2^^27 key pairs (thread 4)
count 2^^11, covered 2^^21 key pairs (thread 0)
count 2^^15, covered 2^^29 key pairs (thread 5)
count 2^^15, covered 2^^29 key pairs (thread 2)
count 2^^14, covered 2^^27 key pairs (thread 6)
count 2^^12, covered 2^^23 key pairs (thread 0)
count 2^^15, covered 2^^29 key pairs (thread 7)
count 2^^15, covered 2^^29 key pairs (thread 3)
count 2^^13, covered 2^^25 key pairs (thread 0)
count 2^^15, covered 2^^29 key pairs (thread 1)
count 2^^15, covered 2^^29 key pairs (thread 4)
count 2^^15, covered 2^^29 key pairs (thread 6)
count 2^^16, covered 2^^31 key pairs (thread 5)
count 2^^14, covered 2^^27 key pairs (thread 0)
count 2^^16, covered 2^^31 key pairs (thread 2)
count 2^^16, covered 2^^31 key pairs (thread 7)
count 2^^15, covered 2^^29 key pairs (thread 0)
count 2^^16, covered 2^^31 key pairs (thread 3)
count 2^^16, covered 2^^31 key pairs (thread 1)
count 2^^16, covered 2^^31 key pairs (thread 4)
count 2^^16, covered 2^^31 key pairs (thread 6)
count 2^^16, covered 2^^31 key pairs (thread 0)
count 2^^17, covered 2^^33 key pairs (thread 2)
count 2^^17, covered 2^^33 key pairs (thread 5)
count 2^^17, covered 2^^33 key pairs (thread 7)
count 2^^17, covered 2^^33 key pairs (thread 3)
count 2^^17, covered 2^^33 key pairs (thread 4)
count 2^^17, covered 2^^33 key pairs (thread 1)
count 2^^17, covered 2^^33 key pairs (thread 6)
count 2^^17, covered 2^^33 key pairs (thread 0)
count 2^^18, covered 2^^35 key pairs (thread 2)
count 2^^18, covered 2^^35 key pairs (thread 7)
count 2^^18, covered 2^^35 key pairs (thread 5)
count 2^^18, covered 2^^35 key pairs (thread 3)
count 2^^18, covered 2^^35 key pairs (thread 4)
count 2^^18, covered 2^^35 key pairs (thread 6)
count 2^^18, covered 2^^35 key pairs (thread 1)
count 2^^18, covered 2^^35 key pairs (thread 0)
count 2^^19, covered 2^^37 key pairs (thread 2)
count 2^^19, covered 2^^37 key pairs (thread 7)
count 2^^19, covered 2^^37 key pairs (thread 3)
count 2^^19, covered 2^^37 key pairs (thread 4)
count 2^^19, covered 2^^37 key pairs (thread 6)
count 2^^19, covered 2^^37 key pairs (thread 5)
count 2^^19, covered 2^^37 key pairs (thread 1)
count 2^^19, covered 2^^37 key pairs (thread 0)
count 2^^20, covered 2^^39 key pairs (thread 2)
count 2^^20, covered 2^^39 key pairs (thread 7)
count 2^^20, covered 2^^39 key pairs (thread 6)
count 2^^20, covered 2^^39 key pairs (thread 3)
count 2^^20, covered 2^^39 key pairs (thread 4)
count 2^^20, covered 2^^39 key pairs (thread 0)
count 2^^20, covered 2^^39 key pairs (thread 5)
count 2^^20, covered 2^^39 key pairs (thread 1)
count 2^^21, covered 2^^41 key pairs (thread 2)
count 2^^21, covered 2^^41 key pairs (thread 7)
count 2^^21, covered 2^^41 key pairs (thread 6)
count 2^^21, covered 2^^41 key pairs (thread 3)
count 2^^21, covered 2^^41 key pairs (thread 4)
count 2^^21, covered 2^^41 key pairs (thread 0)
count 2^^21, covered 2^^41 key pairs (thread 5)
count 2^^21, covered 2^^41 key pairs (thread 1)
count 2^^22, covered 2^^43 key pairs (thread 2)
count 2^^22, covered 2^^43 key pairs (thread 6)
count 2^^22, covered 2^^43 key pairs (thread 3)
count 2^^22, covered 2^^43 key pairs (thread 4)
count 2^^22, covered 2^^43 key pairs (thread 5)
count 2^^22, covered 2^^43 key pairs (thread 7)
count 2^^22, covered 2^^43 key pairs (thread 1)
count 2^^22, covered 2^^43 key pairs (thread 0)
count 2^^23, covered 2^^45 key pairs (thread 6)
count 2^^23, covered 2^^45 key pairs (thread 4)
count 2^^23, covered 2^^45 key pairs (thread 3)
count 2^^23, covered 2^^45 key pairs (thread 2)
count 2^^23, covered 2^^45 key pairs (thread 7)
count 2^^23, covered 2^^45 key pairs (thread 1)
count 2^^23, covered 2^^45 key pairs (thread 5)
count 2^^23, covered 2^^45 key pairs (thread 0)
count 2^^24, covered 2^^47 key pairs (thread 4)
count 2^^24, covered 2^^47 key pairs (thread 6)
count 2^^24, covered 2^^47 key pairs (thread 3)
count 2^^24, covered 2^^47 key pairs (thread 7)
count 2^^24, covered 2^^47 key pairs (thread 5)
count 2^^24, covered 2^^47 key pairs (thread 1)
count 2^^24, covered 2^^47 key pairs (thread 2)
count 2^^24, covered 2^^47 key pairs (thread 0)
count 2^^25, covered 2^^49 key pairs (thread 4)
count 2^^25, covered 2^^49 key pairs (thread 3)
count 2^^25, covered 2^^49 key pairs (thread 1)
count 2^^25, covered 2^^49 key pairs (thread 5)
count 2^^25, covered 2^^49 key pairs (thread 7)
count 2^^25, covered 2^^49 key pairs (thread 6)
count 2^^25, covered 2^^49 key pairs (thread 0)
count 2^^25, covered 2^^49 key pairs (thread 2)
count 2^^26, covered 2^^51 key pairs (thread 3)
count 2^^26, covered 2^^51 key pairs (thread 5)
count 2^^26, covered 2^^51 key pairs (thread 4)
count 2^^26, covered 2^^51 key pairs (thread 1)
count 2^^26, covered 2^^51 key pairs (thread 7)
count 2^^26, covered 2^^51 key pairs (thread 6)
count 2^^26, covered 2^^51 key pairs (thread 0)
count 2^^26, covered 2^^51 key pairs (thread 2)
count 2^^27, covered 2^^53 key pairs (thread 3)
count 2^^27, covered 2^^53 key pairs (thread 5)
count 2^^27, covered 2^^53 key pairs (thread 4)
count 2^^27, covered 2^^53 key pairs (thread 7)
count 2^^27, covered 2^^53 key pairs (thread 1)
count 2^^27, covered 2^^53 key pairs (thread 6)
count 2^^27, covered 2^^53 key pairs (thread 0)
count 2^^27, covered 2^^53 key pairs (thread 2)
count 2^^28, covered 2^^55 key pairs (thread 3)
count 2^^28, covered 2^^55 key pairs (thread 5)
count 2^^28, covered 2^^55 key pairs (thread 4)
count 2^^28, covered 2^^55 key pairs (thread 6)
count 2^^28, covered 2^^55 key pairs (thread 1)
count 2^^28, covered 2^^55 key pairs (thread 7)
count 2^^28, covered 2^^55 key pairs (thread 2)
count 2^^28, covered 2^^55 key pairs (thread 0)
count 2^^29, covered 2^^57 key pairs (thread 6)
count 2^^29, covered 2^^57 key pairs (thread 3)
count 2^^29, covered 2^^57 key pairs (thread 1)
count 2^^29, covered 2^^57 key pairs (thread 5)
count 2^^29, covered 2^^57 key pairs (thread 4)
count 2^^29, covered 2^^57 key pairs (thread 7)
count 2^^29, covered 2^^57 key pairs (thread 0)
count 2^^29, covered 2^^57 key pairs (thread 2)
count 2^^30, covered 2^^58 key pairs (thread 5)
count 2^^30, covered 2^^58 key pairs (thread 4)
count 2^^30, covered 2^^58 key pairs (thread 6)
count 2^^30, covered 2^^58 key pairs (thread 1)
count 2^^30, covered 2^^58 key pairs (thread 0)
count 2^^30, covered 2^^58 key pairs (thread 3)
count 2^^30, covered 2^^58 key pairs (thread 2)
count 2^^30, covered 2^^58 key pairs (thread 7)
count 2^^31, covered 2^^59 key pairs (thread 5)
count 2^^31, covered 2^^59 key pairs (thread 4)
count 2^^31, covered 2^^59 key pairs (thread 1)
count 2^^31, covered 2^^59 key pairs (thread 3)
count 2^^31, covered 2^^59 key pairs (thread 0)
count 2^^31, covered 2^^59 key pairs (thread 7)
count 2^^31, covered 2^^59 key pairs (thread 6)
count 2^^31, covered 2^^59 key pairs (thread 2)
count 2^^32, covered 2^^60 key pairs (thread 5)
count 2^^32, covered 2^^60 key pairs (thread 3)
count 2^^32, covered 2^^60 key pairs (thread 0)
count 2^^32, covered 2^^60 key pairs (thread 1)
count 2^^32, covered 2^^60 key pairs (thread 4)
count 2^^32, covered 2^^60 key pairs (thread 6)
count 2^^32, covered 2^^60 key pairs (thread 7)
count 2^^32, covered 2^^60 key pairs (thread 2)
count 2^^33, covered 2^^61 key pairs (thread 5)
count 2^^33, covered 2^^61 key pairs (thread 1)
count 2^^33, covered 2^^61 key pairs (thread 7)
count 2^^33, covered 2^^61 key pairs (thread 3)
count 2^^33, covered 2^^61 key pairs (thread 4)
count 2^^33, covered 2^^61 key pairs (thread 0)
count 2^^33, covered 2^^61 key pairs (thread 6)
count 2^^33, covered 2^^61 key pairs (thread 2)
count 2^^34, covered 2^^62 key pairs (thread 3)
count 2^^34, covered 2^^62 key pairs (thread 5)
count 2^^34, covered 2^^62 key pairs (thread 7)
count 2^^34, covered 2^^62 key pairs (thread 1)
count 2^^34, covered 2^^62 key pairs (thread 4)
count 2^^34, covered 2^^62 key pairs (thread 2)
count 2^^34, covered 2^^62 key pairs (thread 0)
count 2^^34, covered 2^^62 key pairs (thread 6)
count 2^^35, covered 2^^63 key pairs (thread 5)
count 2^^35, covered 2^^63 key pairs (thread 1)
count 2^^35, covered 2^^63 key pairs (thread 3)
count 2^^35, covered 2^^63 key pairs (thread 7)
count 2^^35, covered 2^^63 key pairs (thread 0)
count 2^^35, covered 2^^63 key pairs (thread 4)
count 2^^35, covered 2^^63 key pairs (thread 2)
count 2^^35, covered 2^^63 key pairs (thread 6)
count 2^^36, covered 2^^64 key pairs (thread 5)
count 2^^36, covered 2^^64 key pairs (thread 1)
count 2^^36, covered 2^^64 key pairs (thread 7)
count 2^^36, covered 2^^64 key pairs (thread 3)
count 2^^36, covered 2^^64 key pairs (thread 0)
count 2^^36, covered 2^^64 key pairs (thread 4)
count 2^^36, covered 2^^64 key pairs (thread 6)
count 2^^36, covered 2^^64 key pairs (thread 2)
count 2^^37, covered 2^^65 key pairs (thread 5)
count 2^^37, covered 2^^65 key pairs (thread 3)
count 2^^37, covered 2^^65 key pairs (thread 1)
count 2^^37, covered 2^^65 key pairs (thread 6)
count 2^^37, covered 2^^65 key pairs (thread 7)
count 2^^37, covered 2^^65 key pairs (thread 2)
count 2^^37, covered 2^^65 key pairs (thread 0)
count 2^^37, covered 2^^65 key pairs (thread 4)
count 2^^38, covered 2^^66 key pairs (thread 5)
count 2^^38, covered 2^^66 key pairs (thread 6)
count 2^^38, covered 2^^66 key pairs (thread 1)
count 2^^38, covered 2^^66 key pairs (thread 3)
count 2^^38, covered 2^^66 key pairs (thread 7)
count 2^^38, covered 2^^66 key pairs (thread 2)
count 2^^38, covered 2^^66 key pairs (thread 4)
count 2^^38, covered 2^^66 key pairs (thread 0)
count 2^^39, covered 2^^67 key pairs (thread 6)
count 2^^39, covered 2^^67 key pairs (thread 1)
count 2^^39, covered 2^^67 key pairs (thread 5)
count 2^^39, covered 2^^67 key pairs (thread 7)
count 2^^39, covered 2^^67 key pairs (thread 2)
count 2^^39, covered 2^^67 key pairs (thread 3)
count 2^^39, covered 2^^67 key pairs (thread 0)
count 2^^39, covered 2^^67 key pairs (thread 4)
count 2^^40, covered 2^^68 key pairs (thread 6)
count 2^^40, covered 2^^68 key pairs (thread 5)
count 2^^40, covered 2^^68 key pairs (thread 1)
count 2^^40, covered 2^^68 key pairs (thread 2)
count 2^^40, covered 2^^68 key pairs (thread 7)
count 2^^40, covered 2^^68 key pairs (thread 3)
count 2^^40, covered 2^^68 key pairs (thread 0)
count 2^^40, covered 2^^68 key pairs (thread 4)
count 2^^41, covered 2^^69 key pairs (thread 6)
count 2^^41, covered 2^^69 key pairs (thread 5)
count 2^^41, covered 2^^69 key pairs (thread 1)
count 2^^41, covered 2^^69 key pairs (thread 2)
count 2^^41, covered 2^^69 key pairs (thread 7)
count 2^^41, covered 2^^69 key pairs (thread 3)
count 2^^41, covered 2^^69 key pairs (thread 0)
count 2^^41, covered 2^^69 key pairs (thread 4)
count 2^^42, covered 2^^70 key pairs (thread 6)
count 2^^42, covered 2^^70 key pairs (thread 5)
count 2^^42, covered 2^^70 key pairs (thread 1)
count 2^^42, covered 2^^70 key pairs (thread 2)
count 2^^42, covered 2^^70 key pairs (thread 3)
count 2^^42, covered 2^^70 key pairs (thread 7)
count 2^^42, covered 2^^70 key pairs (thread 0)
count 2^^42, covered 2^^70 key pairs (thread 4)
count 2^^43, covered 2^^71 key pairs (thread 6)
count 2^^43, covered 2^^71 key pairs (thread 5)
count 2^^43, covered 2^^71 key pairs (thread 1)
count 2^^43, covered 2^^71 key pairs (thread 2)
count 2^^43, covered 2^^71 key pairs (thread 3)
count 2^^43, covered 2^^71 key pairs (thread 7)
count 2^^43, covered 2^^71 key pairs (thread 0)
count 2^^43, covered 2^^71 key pairs (thread 4)
count 2^^44, covered 2^^72 key pairs (thread 6)
count 2^^44, covered 2^^72 key pairs (thread 5)
count 2^^44, covered 2^^72 key pairs (thread 1)
count 2^^44, covered 2^^72 key pairs (thread 2)
count 2^^44, covered 2^^72 key pairs (thread 3)
count 2^^44, covered 2^^72 key pairs (thread 7)
count 2^^44, covered 2^^72 key pairs (thread 0)
count 2^^44, covered 2^^72 key pairs (thread 4)
D:\Froggy_Gumbotron_XXH128_8threads>
In my view keys 1..63 long are problematic, someone can do better, yet, for now Gumbotron_YMM serves well.
Have the idea to change the reading of the key, e.g. for 64+ long ones as 00,01,02,03,...,64,65:
Instead of reading 00..63 and then the remainder 64..65, the new one will read:
00..63
02..65
Could be faster, as well.
from highwayhash.
Related Issues (20)
- New Nodejs bindings package HOT 2
- highwayhash-wasm - WASM JS binding for the browser and nodejs HOT 3
- Alignment attributes are in the wrong place for arrays HOT 1
- Build fails (gcc (Ubuntu 12.2.0-3ubuntu1) 12.2.0) HOT 6
- Small bug in documentation (?) HOT 1
- Question: When the README says "an expected 2^32 guesses of m per the birthday paradox", does it refers to 128 and 256-bits versions too? HOT 3
- Alignment warning when compiling with GCC7 on aarch64 HOT 2
- Issues with Core 2 Duo HOT 1
- [Partial implementation] NEON version HOT 1
- Question: SSSE3 HOT 3
- doc: wikipedia article has been deleted HOT 1
- Failed to build on arm64 HOT 1
- Please strip the installed library HOT 1
- SipHash performs badly on short msgs (< 100 bytes). And missing le64toh swap on key? HOT 4
- Installs an unstripped binary lib/libhighwayhash.so HOT 3
- Builds static library with relocatable code (-fPIC) HOT 3
- Problem with Python 3 bindings HOT 5
- Test fails with gcc 10.2.0 HOT 3
- The tricky __SSE4_1__ macro under Visual Studio HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from highwayhash.