{"id":49581344,"url":"https://github.com/thorstenfoltz/octa","last_synced_at":"2026-05-06T10:01:59.036Z","repository":{"id":349234445,"uuid":"1201339042","full_name":"thorstenfoltz/octa","owner":"thorstenfoltz","description":"Multi reader for parquet, avro, csv, jupyter notebook, json and more","archived":false,"fork":false,"pushed_at":"2026-05-03T18:17:47.000Z","size":1150,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-05-03T20:08:24.973Z","etag":null,"topics":["csv","editor","excel","jupyter-notebook","markdown","octa","parquet","pdf","reader","sas","spss","stata"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thorstenfoltz.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-04T14:45:25.000Z","updated_at":"2026-05-03T17:26:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"6ef082ad-217a-4869-a18a-bd9b4e5b97c7","html_url":"https://github.com/thorstenfoltz/octa","commit_stats":null,"previous_names":["thorstenfoltz/octo","thorstenfoltz/octa"],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/thorstenfoltz/octa","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thorstenfoltz%2Focta","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thorstenfoltz%2Focta/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thorstenfoltz%2Focta/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thorstenfoltz%2Focta/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thorstenfoltz","download_url":"https://codeload.github.com/thorstenfoltz/octa/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thorstenfoltz%2Focta/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32688333,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-06T08:33:17.875Z","status":"ssl_error","status_checked_at":"2026-05-06T08:33:17.221Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["csv","editor","excel","jupyter-notebook","markdown","octa","parquet","pdf","reader","sas","spss","stata"],"created_at":"2026-05-03T20:04:49.892Z","updated_at":"2026-05-06T10:01:59.031Z","avatar_url":"https://github.com/thorstenfoltz.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Octa\n\n\u003cp align=\"left\"\u003e\n  \u003cimg src=\"assets/octa-rose.svg\" alt=\"Octa\" width=\"128\" height=\"128\"\u003e\n\u003c/p\u003e\n\nAn application for viewing data files. Octa opens files in a spreadsheet-like table view with sorting, filtering, and search options. Writing is supported but limited. Octa is primarily a reader.\n\n## Supported Formats\n\n| Format              | Read | Write |\n|---------------------|------|-------|\n| Parquet             | yes  | yes   |\n| CSV / TSV           | yes  | yes   |\n| JSON / JSON Lines   | yes  | yes   |\n| Excel               | yes  | yes   |\n| Arrow IPC / Feather | yes  | yes   |\n| Avro                | yes  | yes   |\n| ORC                 | yes  | yes   |\n| HDF5                | yes  | no    |\n| SQLite              | yes  | yes   |\n| DuckDB              | yes  | yes   |\n| SAS (.sas7bdat)     | yes  | no    |\n| SPSS (.sav, .zsav)  | yes  | yes   |\n| Stata (.dta)        | yes  | yes   |\n| R (.rds)            | yes  | no    |\n| DBF / dBase (.dbf)  | yes  | yes   |\n| XML                 | yes  | yes   |\n| TOML                | yes  | yes   |\n| YAML                | yes  | yes   |\n| PDF                 | yes  | yes   |\n| Jupyter Notebook    | yes  | yes   |\n| Markdown            | yes  | yes   |\n| Plain Text          | yes  | yes   |\n\nUnknown file extensions are opened as plain text.\n\n## Features\n\n### Table View\n\n- Virtual table rendering with smooth scrolling for large datasets\n- Lazy row loading for Parquet files (handles millions of rows)\n- Inline cell editing with type-aware parsing\n- Column resize and drag-and-drop reorder\n- Ascending/descending sort by any column\n- Cell, row, and column selection with clipboard copy/paste\n- Search and filter across all columns in real time\n\n### Multiple View Modes\n\n- **Table View** -- structured spreadsheet display (default)\n- **Raw Text View** -- source text with line numbers and optional column alignment\n- **Markdown View** -- rendered CommonMark preview\n- **Notebook View** -- rendered Jupyter notebook with code cells, markdown cells, and outputs\n- **PDF View** -- page-by-page rendered output\n- **SQL Query View** -- write a query against the current table (exposed as `data`) and see results beneath\n\n### Editing\n\n- Insert, delete, and move rows and columns\n- Color marking for cells, rows, and columns with six color choices\n- Unsaved-changes guards on close and file open\n- Save in the original format or export to a different one via Save As\n\n### Settings\n\n- Configurable font size\n- Light and dark theme with the option to set a default\n\n### Other\n\n- CSV delimiter auto-detection (comma, semicolon, pipe, tab) and manual selection\n- Auto-update check from GitHub releases\n- Cross-platform: Linux, macOS, and Windows\n\n## Installation\n\n### Linux\n\nThe simplest option is to **download a pre-built binary** from the\n[releases page](https://github.com/thorstenfoltz/octa/releases) and run it\ndirectly — no installation step is required:\n\n```bash\nchmod +x octa\n./octa                  # run from anywhere\n# or place it on your PATH, e.g. ~/.local/bin/octa\n```\n\nUse `install.sh` only if you want Octa to appear in your application\nlauncher with an icon and file associations, or if you want to build from\nsource. The script detects whether a pre-built `octa` binary is next to it\nand uses it; otherwise it builds from source, which requires the Rust\ntoolchain (install from \u003chttps://rustup.rs/\u003e).\n\n```bash\n# System-wide (installs to /usr/local)\nsudo ./install.sh\n\n# User-local (no sudo needed)\n./install.sh ~/.local\n```\n\nBuilding from source additionally requires a C compiler and the native\nlibraries listed in `CLAUDE.md` (GTK, fontconfig, mupdf, etc.).\n\n### Arch Linux\n\nAvailable on the AUR as `octa` (build from source) and `octa-bin` (prebuilt binary).\n\n```bash\nparu -S octa\n```\n\nor\n\n```bash\nparu -S octa-bin\n```\n\n### Windows\n\nThe simplest option is to **download `octa.exe`** from the\n[releases page](https://github.com/thorstenfoltz/octa/releases) and run it\ndirectly — no installation needed. Place it wherever you like (e.g. your\nDesktop or `C:\\Tools\\`) and double-click to launch.\n\nOptionally, `install.bat` copies the binary into `Program Files\\Octa`,\ngenerates an `.ico` (if ImageMagick is on PATH), and creates a Start Menu\nshortcut. Right-click and choose **Run as administrator**. It does *not*\nmodify your `PATH`; open Octa via the Start Menu shortcut or by running\n`\"C:\\Program Files\\Octa\\octa.exe\"` directly.\n\n**Windows SmartScreen warning:** Octa is not code-signed, so on first\nlaunch Windows shows *\"Windows protected your PC\"*. Click **More info**,\nthen **Run anyway**. Subsequent launches open without the prompt.\n\n### macOS\n\nThe simplest option is to **download the macOS `.app` bundle** from the\n[releases page](https://github.com/thorstenfoltz/octa/releases). The\nrelease artifact targets Apple Silicon. Drop `Octa.app` into\n`/Applications` (or anywhere else) and double-click to launch.\n\n**First-launch unsigned-app warning:** Octa is not code-signed or\nnotarized, so macOS quarantines the app the first time you launch it.\nYou'll see *\"Octa.app cannot be opened because the developer cannot be\nverified\"*. Two ways around it:\n\n- Right-click the app icon in Finder, choose **Open**, then click **Open**\n  in the confirmation dialog. macOS remembers the choice for that copy\n  of the app.\n- Or remove the quarantine attribute from a terminal:\n\n```bash\nxattr -d com.apple.quarantine /Applications/Octa.app\n```\n\nTo build from source, install the Rust toolchain (\u003chttps://rustup.rs/\u003e)\nand the native dependencies via Homebrew, then `cargo build --release`:\n\n```bash\nbrew install mupdf-tools harfbuzz freetype jpeg openjpeg gtk+3\ncargo build --release\n```\n\nThe resulting binary lives at `target/release/octa`.\n\n## Configuration\n\nSettings are stored in:\n\n- **Linux:** `$XDG_CONFIG_HOME/octa/settings.toml` (defaults to `~/.config/octa/settings.toml`)\n- **macOS:** `~/Library/Application Support/Octa/settings.toml`\n- **Windows:** `%APPDATA%\\Octa\\settings.toml`\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthorstenfoltz%2Focta","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthorstenfoltz%2Focta","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthorstenfoltz%2Focta/lists"}