{"id":13803253,"url":"https://github.com/nomoixyz/vulcan","last_synced_at":"2025-04-06T02:08:40.050Z","repository":{"id":71121904,"uuid":"573133593","full_name":"nomoixyz/vulcan","owner":"nomoixyz","description":"Development framework for Foundry projects","archived":false,"fork":false,"pushed_at":"2024-09-01T16:34:25.000Z","size":2670,"stargazers_count":291,"open_issues_count":14,"forks_count":19,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-03-30T00:09:01.684Z","etag":null,"topics":["ethereum","forge","foundry","foundry-rs","huff","rust","solidity","testing"],"latest_commit_sha":null,"homepage":"https://nomoixyz.github.io/vulcan/","language":"Solidity","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/nomoixyz.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","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":"2022-12-01T19:15:13.000Z","updated_at":"2025-03-06T09:22:07.000Z","dependencies_parsed_at":"2023-10-13T12:44:18.835Z","dependency_job_id":"af470aca-1279-49e2-9a3f-c09b943e72a0","html_url":"https://github.com/nomoixyz/vulcan","commit_stats":{"total_commits":379,"total_committers":9,"mean_commits":"42.111111111111114","dds":0.4591029023746702,"last_synced_commit":"93d1e0a05c7e4317f6111c2b0547498f8c159345"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nomoixyz%2Fvulcan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nomoixyz%2Fvulcan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nomoixyz%2Fvulcan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nomoixyz%2Fvulcan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nomoixyz","download_url":"https://codeload.github.com/nomoixyz/vulcan/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247423514,"owners_count":20936626,"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":["ethereum","forge","foundry","foundry-rs","huff","rust","solidity","testing"],"created_at":"2024-08-04T01:00:26.597Z","updated_at":"2025-04-06T02:08:40.031Z","avatar_url":"https://github.com/nomoixyz.png","language":"Solidity","funding_links":[],"categories":["Tools"],"sub_categories":[],"readme":"\u003e :warning: **Vulcan is not actively maintained. Thank you for your support.**\n\n\u003ch1 align=center\u003e\n    Vulcan\n\u003c/h1\u003e\n\n![test workflow](https://github.com/nomoixyz/vulcan/actions/workflows/forge.yml/badge.svg)\n[![GitHub release](https://img.shields.io/github/v/release/nomoixyz/vulcan?link=https%3A%2F%2Fgithub.com%2Fnomoixyz%2Fvulcan%2Freleases)](https://github.com/nomoixyz/vulcan/releases)\n[![Telegram](https://img.shields.io/badge/chat-gray?logo=telegram)](https://t.me/+XYA0By2mKls3OWIx)\n\n\n\nDevelopment framework for Foundry projects, with a focus on developer experience and readability.\n\nBuilt on top of [`forge-std`](https://github.com/foundry-rs/forge-std) :heart:\n\nInitially, Vulcan will provide functionality similar to what is already included in forge's VM and `forge-std`.\n\nOver time, Vulcan will grow to include more functionality and utilities, eventually becoming a feature-rich development framework.\n\n## Installation\n\nInstall the latest release by running:\n\n```\n$ forge install nomoixyz/vulcan\n```\n\nOr install a specific release with:\n\n```\n$ forge install nomoixyz/vulcan@x.y.z\n```\n\nRelease tags can be found [here](https://github.com/nomoixyz/vulcan/releases)\n\n## Usage\n\nSee the [Vulcan Book](https://nomoixyz.github.io/vulcan/) for detailed usage information.\n\n## Why Vulcan?\n\nOur goal is to provide:\n\n- Better naming for VM functionality (no more `prank`, `roll`, `warp`, ...)\n- A testing framework with better readability and a familiar syntax\n- Improved ergonomics\n- [Huff language](https://huff.sh/) support out of the box\n\nVulcan test example:\n\n```solidity\nimport { Test, expect, commands, Command, CommandResult, println } from \"vulcan/test.sol\";\n\ncontract TestSomething is Test {\n\n    function testSomething() external {\n        // Format strings with rust-like syntax\n        println(\"Hello {s}\", abi.encode(\"world!\")); // Hello world!\n\n        // Format numbers as decimals\n        println(\"Balance: {u:d18}\", abi.encode(1e17)); // Balance: 0.1\n\n        // Nice external command API!\n        Command memory ping = commands.create(\"ping\").args([\"-c\", \"1\"]);\n        CommandResult pingResult = ping.arg(\"etherscan.io\").run();\n\n        // Rust-like results\n        bytes memory pingOutput = pingResult.expect(\"Ping command failed\").stdout;\n\n        println(\"Ping result: {s}\", abi.encode(pingOutput));\n\n        // Expect style assertions!\n        expect(pingResult.isError()).toBeFalse();\n        expect(pingResult.isOk()).toBeTrue();\n\n        // And much more!\n    }\n}\n```\n\n## Planned Features\n\n- Mocking framework\n- Deployment management framework\n\n## Contributing\n\nAt this stage we are looking for all kinds of feedback, as the general direction of the project is not fully defined yet. If you have any ideas to improve naming, ergonomics, or anything else, please open an issue or a PR.\n\n## Acknowledgments\n\nSome of the ideas and code in Vulcan are directly inspired by or adapted from the following projects:\n\n- [forge-std](https://github.com/foundry-rs/forge-std/)\n- [memester-xyz/surl](https://github.com/memester-xyz/surl)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnomoixyz%2Fvulcan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnomoixyz%2Fvulcan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnomoixyz%2Fvulcan/lists"}