{"id":21604,"library":"nameko","title":"Nameko","description":"A microservices framework for Python that lets service developers concentrate on application logic and encourages testability. Current stable release is 2.14.1, with a release candidate for 3.0.0 available. Release cadence is irregular, with major updates every few years.","status":"active","version":"2.14.1","language":"python","source_language":"en","source_url":"https://github.com/nameko/nameko","tags":["microservices","rpc","amqp","eventlet","framework"],"install":[{"cmd":"pip install nameko","lang":"bash","label":"Install stable version"}],"dependencies":[{"reason":"Nameko v2.x automatically monkey-patches with eventlet. In v3.x, this is opt-in.","package":"eventlet","optional":true},{"reason":"Required as an external messaging broker for RPC and events.","package":"rabbitmq","optional":false}],"imports":[{"note":"Nameko uses decorators, not base classes. Use @rpc on methods.","wrong":"","symbol":"ServiceBase","correct":"from nameko.rpc import rpc"},{"note":"In v2.x, use nameko CLI command. For programmatic usage, use ServiceRunner.","wrong":"from nameko.runner import run","symbol":"nameko run","correct":"from nameko.cli.main import main"}],"quickstart":{"code":"from nameko.rpc import rpc\nfrom nameko.standalone.rpc import ServiceRpcProxy\n\nclass GreetingService:\n    name = 'greeting_service'\n\n    @rpc\n    def hello(self, name):\n        return f'Hello, {name}!'\n\nif __name__ == '__main__':\n    from nameko.runners import ServiceRunner\n    from nameko.containers import ServiceContainer\n    from nameko.cli.main import run\n    # Run with: nameko run service:GreetingService\n    print('Run with: nameko run <module>:GreetingService')\n","lang":"python","description":"Define a simple RPC service and run it using the nameko CLI."},"warnings":[{"fix":"If upgrading to v3.x, ensure your code does not rely on automatic monkey-patching. Import eventlet and call eventlet.monkey_patch() if needed.","message":"In v2.x, nameko automatically patches eventlet. In v3.x, this is removed and must be done manually.","severity":"breaking","affected_versions":"<3.0.0 vs >=3.0.0-rc9"},{"fix":"Use ServiceRpcProxy in synchronous code only, or use nameko's async extensions if available.","message":"Async RPC calls: using ServiceRpcProxy in an async context can cause deadlocks if not handled correctly.","severity":"gotcha","affected_versions":"all"},{"fix":"Use alternative debugging methods such as pdb or remote debugging.","message":"nameko backdoor command was removed in v3.0.0-rc7.","severity":"deprecated","affected_versions":">=3.0.0-rc7"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"pip install nameko","cause":"Nameko not installed or running in wrong environment.","error":"ModuleNotFoundError: No module named 'nameko'"},{"fix":"Ensure RabbitMQ is running and accessible. Check AMQP_URI config.","cause":"RabbitMQ not running or unreachable.","error":"pika.exceptions.AMQPConnectionError: Connection closed by remote server"},{"fix":"Correct import: from nameko.rpc import rpc","cause":"Incorrect import path. Use 'from nameko.rpc import rpc'.","error":"AttributeError: module 'nameko' has no attribute 'rpc'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}