vs-asyncapi-preview
Ink
Our great sponsors
vs-asyncapi-preview | Ink | |
---|---|---|
1 | 57 | |
26 | 23,377 | |
- | - | |
5.7 | 8.9 | |
about 1 month ago | 19 days ago | |
TypeScript | TypeScript | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
vs-asyncapi-preview
-
How to contribute to OSS AsyncAPI Initiative π
Regular maintenance for our VS Code plugin.
Ink
-
Is Node.js a good way to implement a CLI app with persistence?
Due to Node's asynchronous behavior, it makes Node great for long-running processes that make a lot of HTTP requests, database calls, and other async ops, like a web server or a REST API. However, if I am making a CLI tool for pretty much personal use only, with very minimal async operations, then blocking the event loop with a synchronous function that will resolve almost immediately will make no difference perceivable to a human brain or have any speed benefits that someone can actually observe (think `fs.readFileSync` or `require('dotenv') of 10 line config file, or a quick embedded db (sqlite) query with only ~100 records. I'm wondering what the best way to implement the database part of the app synchronous. I can read/write to JSON files but it would be tricky because the data is relational, and some complex joins and other data wrangling operations are required (complex to perform in JS but are easy to implement in a SQL statement). It's not important what the operations are, that's not the point of this post. This is mostly a personal project of interest: making this CLI tool completely avoiding any async operations/using no promises. I would like to use node tho, as I said this is just out of interest and I also want to experiment with several CLI libraries such as Ink or Cliffy.
-
Ink: React for interactive command-line apps
Ink is amazing for quickly hacking together TUIs. I recently did so with Nbb (Node Babashka) and and enjoyed the experience overall.
My only real complaint is how everything in your VDOM seems to re-render on a state change. IIRC this is being addressed [1], but is something to be mindful of, especially if your users may be using slow machines.
-
create-helix-app: project templates with Helix and more
To try it out, run npx create-helix-app in your terminal. It is powered by Nbb, Ink, and Helix itself!
-
Is building GUI with Browser and Web Tech Common in Embedded Industry?
React is special because it defines a specification for a 'reconciler', rather than being specifically a 'web' focused library. We use React to define the regular page layout, but also to define our terminal UI tools, our 3D environments and our charting engine. The ability to seamlessly switch reconciler, all in the same language with the same APIs is an absolute super power.
-
React is a fractal of bad design
Youβre probably referring to https://github.com/vadimdemedes/ink
-
Why react?
On the technical side, the ability to have pluggable renderers has been very useful for us. We never would have considered 3D without react-three-fiber. Building cli applications with react-ink is pretty cool.
-
How To Build a CLI With Node.js and React
You're going to build the CLI using Ink, a React component-based library for building interactive CLIs. It uses Yoga to build Flexbox layouts in the terminal, so most CSS-like props are available in Ink as well. Ink is simply a React renderer for the terminal, so all the React features are supported. No need to learn a new syntax specific to Ink.
-
Labview replacement language
React has reconcilers available so you can use the exact same syntax to build 3D scenes, or terminal user interfaces, with performance increases compared to using the underlying APIs naively due to good scheduling.
- Clojurescript & Ink
What are some alternatives?
Commander.js - node.js command-line interfaces made easy
oclif - Node.js Open CLI Framework. Built by Salesforce.
blessed - A high-level terminal interface library for node.js.
nestjs-commander - A module for using NestJS to build up CLI applications
tui-rs - Build terminal user interfaces and dashboards using Rust
PyLaTeX - A Python library for creating LaTeX files
cli-table3 - Pretty unicode tables for the command line
react-native-windows - A framework for building native Windows apps with React.
react-pdf - π Create PDF files using React
not-yet-awesome-rust - A curated list of Rust code and resources that do NOT exist yet, but would be beneficial to the Rust community.
rust-headless-chrome - A high-level API to control headless Chrome or Chromium over the DevTools Protocol. It is the Rust equivalent of Puppeteer, a Node library maintained by the Chrome DevTools team.
zx - A tool for writing better scripts