{"id":17113817,"url":"https://github.com/soptikha2/desed","last_synced_at":"2025-05-14T01:10:27.428Z","repository":{"id":45775075,"uuid":"257128429","full_name":"SoptikHa2/desed","owner":"SoptikHa2","description":"Debugger for Sed: demystify and debug your sed scripts, from comfort of your terminal.","archived":false,"fork":false,"pushed_at":"2025-01-12T11:55:52.000Z","size":11620,"stargazers_count":1173,"open_issues_count":6,"forks_count":26,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-04-03T08:03:26.621Z","etag":null,"topics":["rust","sed","tui-rs","unix"],"latest_commit_sha":null,"homepage":"https://soptik.tech/articles/building-desed-the-sed-debugger.html","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SoptikHa2.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-20T00:05:05.000Z","updated_at":"2025-03-31T15:32:27.000Z","dependencies_parsed_at":"2024-10-19T07:15:29.740Z","dependency_job_id":"1ffddcef-fb20-41ca-90ac-6e0164f976ca","html_url":"https://github.com/SoptikHa2/desed","commit_stats":{"total_commits":141,"total_committers":14,"mean_commits":"10.071428571428571","dds":"0.36170212765957444","last_synced_commit":"eff35985f88b05777bd1aa8d66722ed7829cf1ff"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SoptikHa2%2Fdesed","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SoptikHa2%2Fdesed/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SoptikHa2%2Fdesed/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SoptikHa2%2Fdesed/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SoptikHa2","download_url":"https://codeload.github.com/SoptikHa2/desed/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248224793,"owners_count":21068075,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["rust","sed","tui-rs","unix"],"created_at":"2024-10-14T17:12:45.874Z","updated_at":"2025-05-14T01:10:27.421Z","avatar_url":"https://github.com/SoptikHa2.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Desed\nDemystify and debug your sed scripts, from comfort of your terminal.\n\n![desed usage example](img/desed.gif)\n\nDesed is a command line tool with beautiful TUI that provides users with comfortable interface and practical debugger, used to step through complex sed scripts.\n\nSome of the notable features include:\n\n- Preview variable values, both of them!\n- See how will a substitute command affect pattern space before it runs\n- Step through sed script - both forward and backwards!\n- Place breakpoints and examine program state\n- Hot reload and see what changes as you edit source code\n- Its name is a palindrome\n\n## Install\n\n### Alpine Linux\n\n`aports/testing/desed`\n\n### Arch Linux\n\nVia AUR: [desed-git](https://aur.archlinux.org/packages/desed-git/) or [desed](https://aur.archlinux.org/packages/desed/) as stable version.\n\n### DragonFly BSD\n\n```sh\npkg install desed\n```\n\n### Fedora\n\n```sh\ndnf install desed\n```\n\n### FreeBSD\n\n```sh\npkg install desed\n```\n\n### Void Linux\n\n```sh\nxbps-install -S desed\n```\n\n### Source\n\n```sh\ngit clone https://github.com/soptikha2/desed\ncd desed\ncargo install --path .\ncp \"desed.1\" \"$(manpath | cut -d':' -f1)/man1\"\n```\n\n### Cargo\n\n```\ncargo install desed\n```\n\n### Precompiled binaries\n\nSee [releases](https://github.com/SoptikHa2/desed/releases).\n\n### Dependencies:\n\nDevelopment: `rust`, `cargo` (\u003e= 1.38.0)\n\nRuntime: `sed` (GNU version, \u003e= 4.6) (desed works on BSD if you installed `gsed`)\n\n## Controls\n\n- Mouse scroll to scroll through source code, click on line to toggle breakpoint\n- `j`, `k`, `g`, `G`, just as in Vim. Prefixing with numbers works too.\n- `b` to toggle breakpoint (prefix with number to toggle breakpoint on target line)\n- `s` to step forward, `a` to step backwards\n- `r` to run to next breakpoint or end of script, `R` to do the same but backwards\n- `l` to instantly reload code and continue debugging in the exactly same place as before\n- `q` to [quit](https://github.com/hakluke/how-to-exit-vim)\n\n# FAQ\n\n## How does it work?\nGNU sed actually provides pretty useful debugging interface, try it yourself with `--debug` flag. However the interface is not interactive and I wanted something closer to traditional debugger.\n\n## Does it really work?\nDepends. Sed actually doesn't tell me which line number is it currently executing, so I have to emulate parts of sed to guess that. Which might not be bulletproof. But it certainly worked good enough to debug tetris without issues.\n\n## Why sed??\n\nSed is the perfect programming language, [especially for graph problems](https://tildes.net/~comp/b2k/programming_challenge_find_path_from_city_a_to_city_b_with_least_traffic_controls_inbetween#comment-2run). It's plain and simple and doesn't clutter your screen with useless identifiers like `if`, `for`, `while`, or `int`. Furthermore since it doesn't have things like numbers, it's very simple to use.\n\n## But why?\n\nI wanted to program in sed but it lacked good tooling up to this point, so I had to do something about it.\n\n## Why?\n\nBecause it's the standard stream editor for filtering and transforming text. And someone wrote [tetris](https://github.com/uuner/sedtris) in it!\n\n## Is this a joke?\n\nI thought it was. But apparently it's actually useful for some people.\n\n# What people say about desed\n\n\u003e Amusingly, in French, \"desed\" sounds like \"décéde\", which means die / decease. That's quite a fitting name for a tool one would use in \"I need to debug a sed script\" situations!\n- [mlegendre](https://news.ycombinator.com/item?id=41455667)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoptikha2%2Fdesed","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoptikha2%2Fdesed","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoptikha2%2Fdesed/lists"}