Skip to main content

A package for requesting decompilebench service

Project description

Decompilebench Client (declient)

Asynchronous Request

from pathlib import Path
import asyncio
from declient import DecompilerClient

binary_path = Path(__file__).parent / "testcases" / "test.bin.strip"
address_list = ["0x1a00", "0x1b00"]  # Example address list
base_url = "http://localhost:8000"  # Example base URL
output = "my_task_queue.json"
async def main():
    client = DecompilerClient(
        max_concurrent_requests=50,
        persistent_file_path=output,
        target_url=base_url,
    )
    
    DECOMPILERS = await client.get_decompilers_async()
    
    tasks = [
        asyncio.create_task(client.decompile_async(binary_path, address_list, decompiler_name))
        for decompiler_name in DECOMPILERS
    ]
    for task in tasks:
        print(await task)
        
    # query and wait for tasks to be completed
    await client.process_task_queue()
    
    # get results
    tasks = client.get_completed_tasks()
    for task in tasks:
        print(f"Task {task['uuid']} completed with result: {task['result']}")

asyncio.run(main())

Asynchronous Resume

import asyncio
from declient import DecompilerClient

base_url = "http://localhost:8000"  # Example base URL
output = "my_task_queue.json"
async def main():
    client = DecompilerClient(
        max_concurrent_requests=50,
        persistent_file_path=output,
        target_url=base_url,
    )
    
    # resume quering tasks
    await client.process_task_queue()
    
    # get results
    tasks = client.get_completed_tasks()
    for task in tasks:
        print(f"Task {task['uuid']} completed with result: {task['result']}")

asyncio.run(main())

Synchronous Request

from pathlib import Path
from declient import get_decompilers, decompile

binary_path = Path(__file__).parent / "testcases" / "test.bin.strip"
address_list = ["0x1a00", "0x1b00"]  
base_url = "http://localhost:8000"  
decompilers = get_decompilers(base_url)
for decompiler in decompilers:
    print(decompiler, decompile(binary_path, address_list, decompiler, base_url))

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pydeclient-1.1.0.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pydeclient-1.1.0-py3-none-any.whl (5.0 kB view details)

Uploaded Python 3

File details

Details for the file pydeclient-1.1.0.tar.gz.

File metadata

  • Download URL: pydeclient-1.1.0.tar.gz
  • Upload date:
  • Size: 4.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.8.19

File hashes

Hashes for pydeclient-1.1.0.tar.gz
Algorithm Hash digest
SHA256 ffd8bd1e05242197793b782ce29c7ce69c228b8a0ce54d543d2b0e42cae5c81a
MD5 c2826428554dbf0a4ba7955d4009499b
BLAKE2b-256 019ab2a993cd037e37c22991a3dbc2fc1ba087dbb31e3f46b55b7912fa4d04ff

See more details on using hashes here.

File details

Details for the file pydeclient-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: pydeclient-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.8.19

File hashes

Hashes for pydeclient-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cd0ccb0f62d9e03e3f310b45f99c8dbdbff7caeb9bf81ec4fd73eb04a5af2729
MD5 bfbaaf80e383887434a98e71ac099d6e
BLAKE2b-256 f8ffa339273048ca85b2c2c3b429cb2a96fe366f9269ebc618205f836371e10d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page