-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: introduce next generation ADC #138
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
565abf7
to
b569f0d
Compare
pottekkat
approved these changes
Jul 13, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎉
juzhiyuan
approved these changes
Jul 13, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
juzhiyuan
approved these changes
Jul 14, 2024
This was referenced Jul 14, 2024
bzp2010
added a commit
that referenced
this pull request
Jul 19, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Introducing Next Generation ADC.
Currently, ADC is implemented in a rudimentary language, Golang, with a lack of expressive syntax that hampers the implementation and maintenance of its functionality, and this state of affairs has to be changed. CLI tools are simply not a performance-sensitive scenario, and the use of Golang is not justified.
Scripting languages strike a balance between performance and language features. NodeJS uses the V8 JS engine to perform JIT compilation with respectable performance, and TypeScript provides the best language features that can be compiled to JavaScript, so the next generation of ADCs uses TypeScript + NodeJS stack.
Thanks to the SEA of NodeJS, ADC can still be compiled into a single executable file and run on major operating systems (Linux, Windows, macOS) and major CPU instruction (AMD64, ARM64), and it provides pre-built binaries for all six platforms. In the future, it can also be published to npm repositories and accessed using npx, which will allow users to use ADC on more platforms that don't support SEA compilation at the moment, and will be easy to integrate with the CI/CD pipeline.
We use Nx as the build toolchain, and manage packages in a modular way, so that ADC's backend and converters will be able to evolve independently and be built with major releases. This provides greater modularity than the "primitive" package mechanism in Golang.
On the private dev branch, it's pretty much done by me personally, there have been hundreds of commits, commits from other developers have been reviewed or completely rewritten in the current commit. Too many commits logged could prevent this PR from being readable, so they are collapsed into a single PR.
Checklist
I have verified that this change is backward compatibleAnswer is NO