aretext
scc
aretext | scc | |
---|---|---|
3 | 19 | |
240 | 6,103 | |
0.4% | - | |
8.3 | 8.2 | |
about 1 month ago | 5 days ago | |
Go | Go | |
GNU General Public License v3.0 only | 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.
aretext
-
Incremental Parsing in Go
Look at the current Makefile:
https://github.com/aretext/aretext/blob/main/Makefile
Build is literally a `go build ...` and install is `go install`. Adding any other language to the mix would make this a polyglot project and not be "equally easy to set up". The other question is, do both parsers exist? In this write-up they point to tree-sitter as a possibility which is a JS program that produces C code. This would be viable, but here's the author's take:
> I considered integrating tree-sitter, an incremental parsing library with parsers for many existing languages. However, running JavaScript to generate parsers and linking to a C library would have greatly complicated the build process. Today, aretext can be built on almost any platform using a single go install command. I’ve had users install aretext on ARM laptops, FreeBSD servers, Chromebooks, and Android phones. To maintain portability, I wanted a pure Go implementation.
So this wasn't some casual decision, but something they at least considered long enough to describe here.
And the parsing library itself is only around 1200 lines total (comments, blanks, and code). The parsers for each language add a lot more, of course, but should be roughly equivalent given the same library and interface. I imagine that if this project really takes off and performance becomes a real problem they can do the rewrite at that point. Right now, the code works, seems to work fast enough for its author and primary users, and it's trivial to install on any platform supported by Go. So yes, it would have been a premature optimization to complicate the build process, probably reduce the number of supported platforms (or greatly increase the effort to support the same number of platforms), just to have a slightly faster parser.
- aretext - Minimalist text editor with vim-compatible key bindings.
scc
- Scc: A fast code counter with complexity calculations and COCOMO estimates
-
Essential Command Line Tools for Developers
View on GitHub
-
Ask HN: Programs that saved you 100 hours? (2022 edition)
Going to say my own https://github.com/boyter/scc/ which I have used to turn down projects of "Oh we just need to do X"
It allows me to evaluate the code-base quickly and see where potential issues are, and find hidden complexity in the code. I have said no a lot due to it. The only reason it exists was because I got caught out from another project, which wasted months of my time.
Otherwise IntelliJ and the JetBrains IDE's in general.
-
Building a custom code search index in Go for searchcode.com
Very cool to see this here, Ben! It was fun beating the ins and outs of your work on this in the TZ discord.
Also, off-topic but as you know, I recently tried out your scc tool and am eagerly awaiting its support for Elixir templates (.eex, .heex)!
https://github.com/boyter/scc
-
[media] Onefetch v2.13 is typically 2x faster and now supports ~100 programming languages
I believe tokei is the best rust option as of now, but despite my burning passion for rust I've switched to using scc instead as I find it faster and more convenient. Not really an option for you if you're trying to bake line counting into the binary, obviously.
-
Incremental Parsing in Go
I've seen some real world example where Go was as fast or faster than Rust for CPU / io intensive task.
Go is a fast language even with a GC.
https://github.com/boyter/scc/#performance
- Goal: Pass all 4259065 tests in sqllogictest in 1 week
-
Large project uses Rust backend. My backend developer left. How hard is it for me to learn Rust and take over for him.
I don't trust your qualitative "LARGE" for the project. I would recommend you pass your project through something like a software metrics tool https://github.com/boyter/scc to better measure what you're up against in terms of Flutter/Dart AND Rust code base.
- A fast accurate code counter with complexity calculations and COCOMO estimates
- Fd: A simple, fast and user-friendly alternative to 'find'
What are some alternatives?
Squircle-CE - 👨💻 Squircle CE is a fast and free multi-language code editor for Android
cloc - cloc counts blank lines, comment lines, and physical lines of source code in many programming languages.
mangadesk - Terminal client for MangaDex 📖
tokei-pie - Render tokei's output to interactive sunburst chart.
ntfy - Send push notifications to your phone or desktop using PUT/POST
croc - Easily and securely send things from one computer to another :crocodile: :package:
tut - TUI for Mastodon with vim inspired keys
Seaweed File System - SeaweedFS is a fast distributed storage system for blobs, objects, files, and data lake, for billions of files! Blob store has O(1) disk seek, cloud tiering. Filer supports Cloud Drive, cross-DC active-active replication, Kubernetes, POSIX FUSE mount, S3 API, S3 Gateway, Hadoop, WebDAV, encryption, Erasure Coding. [Moved to: https://github.com/seaweedfs/seaweedfs]
orbiton - Configuration-free text editor and IDE limited to VT100. Suitable for writing git commit messages, editing Markdown, config files, source code, viewing man pages and for quick edit-compile cycles when programming. Has syntax highlighting, jump-to-error, rainbow parentheses, macros, tab completion, cut/paste portals and a simple gdb front-end.
Hugo - The world’s fastest framework for building websites.
Gor - GoReplay is an open-source tool for capturing and replaying live HTTP traffic into a test environment in order to continuously test your system with real data. It can be used to increase confidence in code deployments, configuration changes and infrastructure changes.
Circuit - Circuit: Dynamic cloud orchestration http://gocircuit.org